MongoDB用户管理命令包含与用户相关的命令。无涯教程可以使用以下用户管理命令创建,删除和更新用户。
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 | 字符串 | 此字段包含新用户的名称。 |
| pwd | 字符串 | 此字段包含用户的密码。该值可以是ClearText字符串或passwordprompt()中的用户的密码,以提示用户的密码。 |
| customdata | 文档 | 此字段包含管理员希望与特定用户关联的数据。 |
| roles | 数组 | 字段给用户授予任何角色。 |
| digestpassword | boolean | digestpassword表示它是摘要密码的服务器或客户端。 |
| writeConcern | 文档 | 此字段包含创建操作的写入问题。 |
| authentication Restrictions |
数组 | 它强制执行创建用户的身份验证规则。它提供了允许用户连接的IP地址列表和CIDR范围。 |
| mechanism | 数组 | 此字段指定剪辑机制。有效的扰流值是Scram-Sha-1和Scram-SHA-256。 |
示例:
db.getSiblingDB("student").runCommand( {
createUser: "admin@learnfk",
pwd: passwordPrompt(),
customData: { empId: 101 },
roles: [
{ role: "clusterAdmin", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
"readWrite"
],
writeConcern: { w: "majority" , wtimeout: 5000 }
} )
上面的示例在学生数据库上创建用户admin@learnfk。该命令将admin@learnfk在admin数据库上的clusteradmin和ReadanyDatabase角色和学生数据库中的ReadWrite角色。
mongodb dropUser命令
MongoDB DropUser命令从无涯教程正在运行该命令的数据库中删除用户。
语法:
{
dropUser: "<user>",
writeConcern: { <write concern> }
}
DropUser命令字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| dropUser | 字符串 | 字段包含要删除的用户的名称。 |
| writeConcern | 文档 | 此字段包含用于删除操作的写入界限。 |
示例:
use products
db.runCommand( {
dropUser: " admin@learnfk ",
writeConcern: { w: "majority", wtimeout: 5000 }
} )
mongodb updateUser命令
MongoDB updateUser命令命令将用户更新在运行命令的数据库中的用户详细信息。当无涯教程使用该命令时,它将完全替换前一个字段的值,包括分配的角色以及AuthenticationRestrics数组。
语法:
{
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 | 字符串 | 它包含无涯教程需要更新的用户的名称。 |
| pwd | 字符串 | 它包含用户的密码,或者您可以使用密码提示来提示密码。 |
| customdata | 文档 | 此字段包含管理员希望在特定用户中更新的数据。 |
| role | 数组 | 此字段给用户授予一个角色。 |
| digestpassword | boolean | 表示,如果服务器或客户端将摘要密码。 |
| writeConcern | 文档 | 此字段包含创建操作的写入问题。 |
| authentication Restrictions |
数组 | 它强制为创建的用户执行身份验证规则。它提供了IP地址列表和CIDR范围从中允许用户连接。 |
| mechanism | 数组 | 此字段指定剪辑机制。有效的扰流值是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" } ]
} )