On this page本页内容
grantPrivilegesToRole
Assigns additional privileges to a user-defined role defined on the database on which the command is run. 为在运行命令的数据库上定义的用户定义角色分配其他权限。The grantPrivilegesToRole
command uses the following syntax:grantPrivilegesToRole
命令使用以下语法:
{ grantPrivilegesToRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], writeConcern: { <write concern> }, comment: <any> }
The grantPrivilegesToRole
command has the following fields:grantPrivilegesToRole
命令具有以下字段:
grantPrivilegesToRole | string | |
privileges | array | privileges . privileges 。 |
writeConcern | document |
|
comment | any |
|
A role's privileges apply to the database where the role is created. 角色的权限应用于创建角色的数据库。A role created on the 在admin
database can include privileges that apply to all databases or to the cluster.admin
数据库上创建的角色可以包括应用于所有数据库或集群的权限。
You must have the 您必须将数据库上的grantRole
action on the database a privilege targets in order to grant the privilege. grantRole
操作作为权限目标,才能授予权限。To grant a privilege on multiple databases or on the 要在多个数据库或cluster
resource, you must have the grantRole
action on the admin
database.cluster
资源上授予权限,必须对管理数据库执行grantRole
操作。
The following 以下grantPrivilegesToRole
command grants two additional privileges to the service
role that exists in the products
database: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 } } )
The first privilege in the privileges
array allows the user to search on all non-system collections in the products
database. privileges
数组中的第一个权限允许用户搜索products
数据库中的所有非系统集合。The privilege does not allow queries on system collections, such as the 该权限不允许查询系统集合,例如system.js
collection. system.js
集合。To grant access to these system collections, explicitly provision access in the 要授予对这些系统集合的访问权限,请在privileges
array. See Resource Document.privileges
数组中显式设置访问权限。请参阅资源文档。
The second privilege explicitly allows the 第二个权限明确允许对所有数据库上的find
action on system.js
collections on all databases.system.js
集合执行find
操作。