grantRolesToUser
定义
grantRolesToUser
为用户授予额外的角色。
提示
在
mongosh
中,此命令也可以通过db.grantRolesToUser()
辅助方法运行.辅助方法对
mongosh
用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要便利性或需要额外的返回字段的情况下,请使用数据库命令。
兼容性
此命令在以下环境中托管的服务器中可用
MongoDB Atlas:云中MongoDB部署的完全托管服务
重要
此命令不支持M0、M2、M5和M10+集群。有关更多信息,请参阅不支持命令。
MongoDB Enterprise:基于订阅的自托管MongoDB版本
MongoDB Community:MongoDB的开源版本,可免费使用并自行管理
语法
grantRolesToUser
命令使用以下语法
db.runCommand( { grantRolesToUser: "<user>", roles: [ <roles> ], writeConcern: { <write concern> }, comment: <any> } )
命令字段
该命令接受以下字段
字段 | 类型 | 描述 |
---|---|---|
grantRolesToUser | string | 要赋予额外角色的用户名。 |
roles | array | 要赋予用户的额外角色数组。 |
writeConcern | document | 可选。操作写入关注级别的设置。请参阅写入关注规范。 |
comment | any | 可选。用户提供的附加到该命令的注释。一旦设置,此注释将在以下位置与该命令的记录一起显示
注释可以是任何有效的BSON 类型(字符串、整数、对象、数组等)。 |
在 roles
字段中,您可以指定内置角色和 内置角色 以及 用户自定义角色。
要指定与 grantRolesToUser
运行在同一个数据库中的角色,您可以指定角色的名称
"readWrite"
或者您可以用文档来指定角色,如下所示
{ role: "<role>", db: "<database>" }
要指定存在于不同数据库中的角色,请用文档指定该角色。
所需权限
示例
假设在 products
数据库中有一个名为 accountUser01
的用户,其具有以下角色
"roles" : [ { "role" : "assetsReader", "db" : "assets" } ]
以下 grantRolesToUser
操作为 accountUser01
授予了 stock
数据库的 read
角色和 products
数据库的 readWrite
角色。
use products db.runCommand( { grantRolesToUser: "accountUser01", roles: [ { role: "read", db: "stock"}, "readWrite" ], writeConcern: { w: "majority" , wtimeout: 2000 } } )
现在在 products
数据库中的用户 accountUser01
拥有以下角色
"roles" : [ { "role" : "assetsReader", "db" : "assets" }, { "role" : "read", "db" : "stock" }, { "role" : "readWrite", "db" : "products" } ]