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操作。