MongoDB 用户管理命令

MongoDB 用户管理命令

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 | 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@javaTpoint",
       pwd: passwordPrompt(),
       customData: { empId: 101 },
       roles: [
                { role: "clusterAdmin", db: "admin" },
                { role: "readAnyDatabase", db: "admin" },
                "readWrite"
              ],
       writeConcern: { w: "majority" , wtimeout: 5000 }
} )

上面的示例在student数据库上创建了一个名为admin@javaTpoint的用户。该命令为admin@javatpoint用户在admin数据库上赋予了clusterAdmin和readAnyDatabase角色,并在student数据库上赋予了readwrite角色。

MongoDB dropUser命令

MongoDB dropUser命令从运行命令的数据库中删除用户。

语法:

{
  dropUser: "<user>",
  writeConcern: { <write concern> }
}

dropUser命令字段:

字段 类型 描述
dropUser string dropUser字段包含您要删除的用户名。
writeConcern document 该字段包含移除操作的写入关注级别。

示例:

use products
db.runCommand( {
   dropUser: " admin@javaTpoint ",
   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 字符串 包含需要更新的用户的名称。
pwd 字符串 包含用户的密码,或者可以使用密码提示来提示输入密码。
customData 文档 该字段包含管理员希望在特定用户中更新的数据。
roles 数组 该字段给用户分配一个角色。
digestPassword 布尔值 如果服务器或客户端需要摘要密码,则指示为真。
writeConcern 文档 该字段包含创建操作的写入关注点。
authentication Restrictions 数组 它强制执行对创建的用户的身份验证规则。它提供了一个IP地址和CIDR范围的列表,允许用户连接。
mechanism 数组 该字段指定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和roles数据:

use products
db.runCommand( {
   updateUser : "appClient01",
   customData : { employeeId : "0x3039" },
   roles : [ { role : "read", db : "assets" } ]
} )

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程