MongoDB 用户管理命令
Mongo DB 用户管理命令包含与用户相关的命令。我们可以使用以下用户管理命令创建、删除和更新用户。
一、MongoDB createUser 命令
MongoDB createUser 命令为我们运行命令的数据库创建一个新用户。如果用户已经存在,它将返回重复用户错误。
语法:
{
createUser: "<user_name>",
pwd: "<cleartext password>"
customData: { <any info.> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
writeConcern: { <write concern> },
authenticationRestrictions: [
{ clientSource: [ "<IP|CIDR range>", ... ], serverAddress: [ "<IP|CIDR range>", ... ] },
...
],
mechanisms: [ "<scram-mechanism>", ...],
digestPassword: <boolean>
createUser 命令具有以下字段:
字段名 | 类型 | 描述 |
---|---|---|
createUser | string | 此字段包含新用户的名称。 |
pwd | string | 此字段包含用户的密码。该值可以是明文字符串中的用户密码,也可以是用于提示输入用户密码的 passwordPrompt()。 |
customData | document | 此字段包含管理员希望与特定用户关联的数据。 |
roles | array | 该字段将任何角色授予用户。 |
digestPassword | boolean | digestPassword 表示对密码进行摘要的服务器或客户端。 |
writeConcern | document | 此字段包含创建操作的写入关注点。 |
authentication Restrictions |
array | 它对创建的用户强制执行身份验证规则。它提供了允许用户连接的 IP 地址和 CIDR 范围的列表。 |
mechanism | array | 该字段指定 SCRAM 机制。有效的 SCRAM 值为 SCRAM-SHA-1 和 SCRAM-SHA-256。 |
示例:
db.getSiblingDB("student").runCommand( {
createUser: "admin@yiidian",
pwd: passwordPrompt(),
customData: { empId: 101 },
roles: [
{ role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
],
writeConcern: { w: "majority" , wtimeout: 5000 }
} )
上面的示例在学生数据库上创建了一个用户admin@yiidian。该命令为admin@yiidian提供了 admin 数据库上的 clusterAdmin 和 readAnyDatabase 角色以及学生数据库上的 readwrite 角色。
二、MongoDB dropUser 命令
MongoDB dropUser 命令从我们运行命令的数据库中删除用户。
语法:
{
dropUser: "<user>",
writeConcern: { <write concern> }
}
dropUser 命令字段:
字段名 | 类型 | 描述 |
---|---|---|
dropUser | string | dropUser 字段包含您要删除的用户的名称。 |
writeConcern | document | 此字段包含删除操作的写入关注级别。 |
示例:
use products
db.runCommand( {
dropUser: " admin@yiidian",
writeConcern: { w: "majority", wtimeout: 5000 }
} )
三、MongoDB updateUser 命令
MongoDB updateUser 命令更新我们运行该命令的数据库中的用户详细信息。当我们使用该命令时,它将完全替换先前字段的值,包括分配的角色和 authenticationRestrictions 数组。
语法:
{
updateUser: "<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-mechanism>", ... ],
digestPassword: <boolean>,
writeConcern: { <write concern> }
}
updateUser字段:
字段名 | 类型 | 描述 |
---|---|---|
updateUser | string | 它包含我们需要更新的用户名。 |
pwd | string | 它包含用户的密码,或者您可以使用密码提示来提示输入密码。 |
customData | document | 此字段包含管理员希望在特定用户中更新的数据。 |
roles | array | 此字段向用户授予角色。 |
digestPassword | boolean | 它指示服务器或客户端是否会消化密码。 |
writeConcern | document | 此字段包含创建操作的写入关注点。 |
authentication Restrictions |
array | 它对创建的用户强制执行身份验证规则。它提供了允许用户连接的 IP 地址和 CIDR 范围的列表。 |
mechanism | array | 该字段指定 SCRAM 机制。有效的 SCRAM 值为 SCRAM-SHA-1 和 SCRAM-SHA-256。 |
示例:
{
"_id" : "products.appClient01",
"userId" : UUID("c5d88855-3f1e-46cb-9c8b-269bef957986"), // Starting in MongoDB 4.0.9
"user" : "appClient01",
"db" : "products",
"customData" : { "empID" : "12345", "badge" : "9156" },
"roles" : [
{ "role" : "readWrite",
"db" : "products"
},
{ "role" : "read",
"db" : "inventory"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
以下更新用户命令完全替换了用户的 customData 和角色数据:
use products
db.runCommand( {
updateUser : "appClient01",
customData : { employeeId : "0x3039" },
roles : [ { role : "read", db : "assets" } ]
} )
热门文章
优秀文章