创建用户
创建用户步骤
在文档数据库服务中,可以使用 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级别。