对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

db.grantRolesToUser()(mongosh方法)

db.grantRolesToUser(username, roles, writeConcern)

授予用户其他角色。

重要

mongosh 方法

本页介绍了mongosh 方法。这不是数据库命令或特定语言驱动程序(例如 Node.js)的文档。

有关数据库命令,请参阅 grantRolesToUser 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

db.grantRolesToUser()方法使用以下语法:

db.grantRolesToUser( "<username>", [ <roles> ], { <writeConcern> } )

db.grantRolesToUser()方法接受以下参数:

Parameter
类型
说明

user

字符串

要向其授予角色的用户的名称。

roles

阵列

授予用户的附加角色的数组。

writeConcern

文档

可选。操作的写关注级别。请参阅写关注规范

roles 字段中,可以指定内置角色用户自定义角色

要指定运行db.grantRolesToUser() 的同一数据库中存在的角色,可以使用角色名称指定角色:

"readWrite"

或者,可以使用文档指定角色,如下所示:

{ role: "<role>", db: "<database>" }

要指定存在于其他数据库中的角色,请使用文档指定该角色。

db.grantRolesToUser()方法封装了grantRolesToUser 命令。

此方法可用于以下环境中托管的部署:

重要

MongoDB Atlas 集群不支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

如果在副本集上运行,则默认使用 写关注(write concern)执行db.grantRolesToUser() "majority"

必须对数据库执行 grantRole 操作才能在该数据库上授予角色。

假设 products 数据库中有一个具有以下角色的用户 accountUser01

"roles" : [
{ "role" : "assetsReader",
"db" : "assets"
}
]

以下db.grantRolesToUser() 操作为accountUser01 readWrite赋予了products 数据库上的 角色和read stock数据库上的 角色。

use products
db.grantRolesToUser(
"accountUser01",
[ "readWrite" , { role: "read", db: "stock" } ],
{ w: "majority" , wtimeout: 4000 }
)

products 数据库中的用户 accountUser01 现在具有以下角色:

"roles" : [
{ "role" : "assetsReader",
"db" : "assets"
},
{ "role" : "read",
"db" : "stock"
},
{ "role" : "readWrite",
"db" : "products"
}
]