db.grantRolesToRole()
Definition
db.
grantRolesToRole
(rolename, roles, writeConcern)- Grants roles to a user-defined role.
The grantRolesToRole
method uses the following syntax:
- db.grantRolesToRole( "<rolename>", [ <roles> ], { <writeConcern> } )
The grantRolesToRole
method takes the following arguments:
ParameterTypeDescriptionrolename
stringThe name of the role to which to grant sub roles.roles
arrayAn array of roles from which to inherit.writeConcern
documentOptional. The level of write concern for themodification. The writeConcern
document takes the samefields as the getLastError
command.
In the roles
field, you can specify bothbuilt-in roles and user-definedroles.
To specify a role that exists in the same database wheredb.grantRolesToRole()
runs, you can either specify the role with the name ofthe role:
- "readWrite"
Or you can specify the role with a document, as in:
- { role: "<role>", db: "<database>" }
To specify a role that exists in a different database, specify the rolewith a document.
The db.grantRolesToRole()
method wraps thegrantRolesToRole
command.
Behavior
Replica set
If run on a replica set, db.grantRolesToRole()
is executed using majority
write concern by default.
Scope
A role can inherit privileges from other roles in its database. A rolecreated on the admin
database can inherit privileges from roles inany database.
Required Access
You must have the grantRole
action on a database to grant a role on that database.
Example
The following grantRolesToRole()
operation updates theproductsReaderWriter
role in the products
database to inherit the privileges of productsReader
role:
- use products
- db.grantRolesToRole(
- "productsReaderWriter",
- [ "productsReader" ],
- { w: "majority" , wtimeout: 5000 }
- )