文档菜单
文档首页
/
MongoDB 手册
/ / /

grantPrivilegesToRole

本页内容

  • 定义
  • 兼容性
  • 命令字段
  • 行为
  • 所需访问权限
  • 示例
grantPrivilegesToRole

分配额外的权限到在执行命令的数据库上定义的用户自定义角色。

提示

mongosh中,此命令还可以通过db.grantPrivilegesToRole()辅助方法运行.

辅助方法对mongosh用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要便利性或需要额外返回字段的情况下,请使用数据库命令。

grantPrivilegesToRole命令使用以下语法

db.runCommand(
{
grantPrivilegesToRole: "<role>",
privileges: [
{
resource: { <resource> }, actions: [ "<action>", ... ]
},
...
],
writeConcern: { <write concern> },
comment: <any>
}
)

此命令可在以下环境中托管的部署中使用

  • MongoDB Atlas:云中MongoDB部署的全托管服务

重要

此命令不支持在M0、M2和M5集群中。有关更多信息,请参阅不支持命令。

此命令具有以下字段

字段
类型
描述
grantPrivilegesToRole
string
要授予特权的用户定义角色的名称。
privileges
array
要添加到角色的权限。有关权限格式的信息,请参阅privileges
writeConcern
document

可选。操作的写入关注度级别。有关写入关注度规范的信息。

comment
any

可选。用户提供的与此命令关联的注释。一旦设置,此注释将出现在以下位置的相关记录旁边

注释可以是任何有效的BSON类型(字符串、整数、对象、数组等)。

角色的权限应用于创建角色的数据库。在 admin 数据库上创建的角色可以包括应用于所有数据库或集群的权限。

你必须拥有在目标权限的数据库上执行 grantRole 操作 的权限才能授予权限。要授予权限于多个数据库或集群资源,你必须拥有在 admin 数据库上执行 grantRole 操作的权限。

以下 grantPrivilegesToRole 命令向存在于 products 数据库中的 service 角色授予两个额外的权限。

use products
db.runCommand(
{
grantPrivilegesToRole: "service",
privileges: [
{
resource: { db: "products", collection: "" }, actions: [ "find" ]
},
{
resource: { db: "products", collection: "system.js" }, actions: [ "find" ]
}
],
writeConcern: { w: "majority" , wtimeout: 5000 }
}
)

privileges 数组中的第一个权限允许用户在 products 数据库中的所有非系统集合上进行搜索。此权限不允许查询系统集合,例如 system.js 集合。若要授予对这些系统集合的访问权限,请在 privileges 数组中显式提供访问权限。请参阅自托管部署的资源文档

第二个权限明确允许对所有数据库中的 find 操作进行 system.js 集合。

返回

dropAllRolesFromDatabase