角色管理方法

2025年3月17日 | 阅读 3 分钟

角色管理命令用于管理用户的角色。以下是用于不同目的的方法。

#1. db.createRole(role, writeConcern)

createRole 方法用于在数据库下分配角色。使用此方法,我们可以通过显式列出权限来指定角色的权限。您也可以通过让角色从某些不同的角色继承权限来执行此操作,或者两者兼而有之。该角色始终适用于我们运行该方法的数据库。

语法

示例

admin 数据库上的 JTPAdmin 角色将使用 cerate role 方法创建

输出

Role Management Methods

#2. db.dropRole(rolename, writeConcern)

drop role 方法用于从我们运行该方法的数据库中删除指定的、用户自定义的角色。

示例

以下示例从 tutorial 数据库中删除 readsubject 角色

输出

Role Management Methods

#3. db.dropAllRoles(writeConcern)

drop all role 方法用于从我们运行该方法的数据库中删除所有指定的、用户自定义的角色。

示例

以下示例使用 majority 的写入关注点,并从 tutorials 数据库中删除所有用户自定义的角色。

输出

Role Management Methods

#4. db.getRole(rolename, args)

MongoDB 中,一个角色继承了另一个角色的实例。此方法用于获取该角色从中继承权限的父角色。此外,可以使用此方法返回角色的所有权限。

当我们从包含用户自定义角色和内置角色的数据库运行 db.getRole() 方法时,指定的命令可以检索信息。

示例

对于在 tutorials 数据库上定义的角色 Admin,返回角色继承信息和权限。

#5. db.getRoles()

返回命令在其上运行的数据库中所有角色的信息。我们可以使用带参数或不带参数的此方法。如果我们在不带参数的情况下运行此方法,该方法将返回数据库的用户自定义角色的继承信息。

示例

以下查询将返回 tutorials 数据库上所有现有角色的文档,并且还包括角色权限和内置角色

输出

Role Management Methods

#6. db.updateRole(<rolename>, <update>, <writeConcern>)

update role 方法用于更新用户自定义的角色。要更新用户自定义的角色,它必须在指定角色的数据库上运行。当我们更新一个字段时,它将完全替换旧字段的值。

在这种情况下,我们需要在不替换每个值的情况下添加或删除角色/权限,我们必须使用以下列出的一个或多个方法

  • grantRolesToRole()
  • grantPrivilegesToRole()
  • revokeRolesFromRole()
  • revokePrivilegesFromRole()

示例

以下示例将替换 tutorials 数据库中存在的 librarian 角色的权限和角色。该方法在包含 librarian 的数据库上运行

Shell 输出和示例

Role Management Methods
下一个主题MongoDB 复制方法