文档数据库服务

用户管理

2025-07-01 08:56:26

创建用户

创建用户步骤

在文档数据库服务中,可以使用 createUser 命令或 db.createUser() 方法来创建用户。创建用户通常包括以下几个步骤: 

1. 连接到文档数据库服务实例。 

首先,需要连接到文档数据库服务实例或集群。可以使用 mongo 命令或文档数据库服务客户端来连接到文档数据库服务实例。 

2. 切换到目标数据库。 

连接到文档数据库服务实例后,需要切换到目标数据库。可以使用 use 命令或 db.getSiblingDB() 方法来切换到目标数据库。例如,下面的命令切换到名为 mydb 的数据库:

use mydb

3. 创建用户。

切换到目标数据库后,可以使用 createUser 命令或 db.createUser(user,writeConcern) 方法来创建用户。例如,下面的命令创建一个名为 myuser,密码为 mypassword 的用户,并赋予 readWrite 权限:

db.createUser(
  {
    user: "myuser",
    pwd: "***********",
    roles: [ { role: "readWrite", db: "mydb" } ]
  }
)

这个用户 myuser 将具有对 mydb 数据库的读写权限,并且可以使用指定的密码进行身份验证。可以根据需要修改用户的名称、密码和权限。

createUser具体格式

具体创建用户的格式如下:

db.createUser(
    {
      user: "<name>",
      pwd: "<cleartext password>",
      customData: { <any information> },
      roles: [
        { role: "<role>", db: "<database>" } | "<role>",
        ...
      ],
      authenticationRestrictions: [
         {
           clientSource: ["<IP>" | "<CIDR range>", ...],
           serverAddress: ["<IP>" | "<CIDR range>", ...]
         },
         ...
      ]
      mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ],
      passwordDigestor: "<server|client>"
    }
)

参数说明:

字段

类型

说明

user

string

用户名称。

pwd

string

用户密码,如果您在$external数据库上使用db.createUser()创建一个用户,并将凭据存储在文档数据库服务外部,那么密码字段(pwd)不是必需的。

customData

文档

该字段可用于存储管理员希望与此特定用户关联的任何数据。例如,这可以是用户的身份信息ID。

roles

数组

用户角色。在这里可以指定一个空数组[]来创建没有角色的用户。

authenticationRestrictions

数组

身份验证限制是服务器对创建的用户强制执行的规则,它用于指定角色可以访问的IP地址或IP地址段。

mechanisms

数组

用户凭据,可以通过指定特定的SCRAM机制来创建SCRAM用户凭据。可用的机制包括SCRAM-SHA-1和SCRAM-SHA-256。

passwordDigestor

string

表示在server端或client端验证密码,默认是server。

更新用户

更新用户步骤 

在文档数据库服务中,可以使用 updateUser 命令或 db.updateUser(username, update, writeConcern) 方法来更新用户的信息。更新用户通常包括以下几个步骤: 

1. 确认要更新的用户。 

首先,需要确认要更新的用户的名称和当前配置信息。可以使用 db.getUser() 命令或 db.runCommand({ usersInfo: { user: "", db: "" }, showCredentials: true }) 方法来获取用户的配置信息。例如,下面的命令获取名为 myuser 的用户在 mydb 数据库中的配置信息:

db.runCommand({ usersInfo: { user: "myuser", db: "mydb" }, showCredentials: true })

2. 更新用户。

确认要更新用户后,可以使用 updateUser 命令或 db.updateUser() 方法来更新用户。例如,下面的命令将名为 myuser 的用户的密码更新为 newpassword:

db.updateUser("myuser", { pwd: "newpassword" })

updateUser具体模板

db.updateUser(
   "<username>",
   {
     customData : { <any information> },
     roles : [
       { role: "<role>", db: "<database>" } | "<role>",
       ...
     ],
     pwd: passwordPrompt(),      // Or  "<cleartext password>"
     authenticationRestrictions: [
        {
          clientSource: ["<IP>" | "<CIDR range>", ...],
          serverAddress: ["<IP>", | "<CIDR range>", ...]
        },
        ...
     ],
     mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ],
     passwordDigestor: "<server|client>"
   },
   writeConcern: { <write concern> }
)

以上参数可以参考开发指南-数据库权限管理-用户管理-创建用户

删除用户

文档数据库服务操作用户删除主要用 dropUser,具体为:db.dropUser(username, writeConcern),其中参数说明如下: 

  • username为要从数据库中删除的用户名。

  • writeConcern为可选参数, 移除操作的writeConcern级别。


_abIyymLi7ha