托管自定义角色
角色授予用户访问 MongoDB 资源的权限。 默认情况下,MongoDB 提供一些内置角色,但如果这些角色无法描述所需的权限集,您可以创建自定义角色。
创建角色时,请指定角色适用的数据库。 Cloud Manager 将您的自定义角色存储在 Cloud Manager 项目中的所有 MongoDB 实例上,但通过数据库名称和角色名称的组合来唯一标识角色。如果具有该名称的数据库存在于 Cloud Manager 项目内的多个部署中,则该角色将应用于每个数据库。如果在 admin
数据库上创建角色,则该角色将应用于部署中的所有admin
数据库。
角色由授予对特定资源执行特定操作的访问权限的特权组成。 在大多数数据库上,资源是数据库或collection,但在admin
数据库上,资源可以是所有数据库、跨数据库具有给定名称的所有collection或所有部署。
角色可以从其数据库中的其他角色继承权限。admin
数据库上的角色可以继承其他数据库中角色的权限。
MongoDB 角色与 Cloud Manager角色是分开的。
Considerations
托管用户和角色
您选择在 Cloud Manager 项目中托管的任何用户或角色的 Synced值设置为Yes
,并同步到项目中的所有部署。
您未选择在 Cloud Manager 项目中托管的任何用户或角色的Synced值设置为No
,并且仅存在于各自的 MongoDB 部署中。
注意
如果您在导入后将Synced切换为OFF
,您创建的任何用户或角色都将被删除。
一致的用户和角色
如果您在项目中实施一组一致的用户和角色,Cloud Manager 将在该项目的所有部署中同步这些用户和角色。切换Enforce Consistent Set以选择是否托管一组用户和角色:
Enforce Consistent Set is YES
在托管项目中,Cloud Manager 会授予所有角色对所有部署的访问权限。所有Cloud Manager经理托管的部署都具有相同的MongoDB用户和角色集。
Cloud Manager 会限制将Synced设置为Yes
的用户和角色的访问权限。Cloud Manager 会从项目的部署中删除 Cloud Manager 项目未管理的所有用户和角色。
Enforce Consistent Set is NO
在托管项目中,Cloud Manager 允许每个部署使用自己的一组 MongoDB 用户和角色。 Cloud Manager 不需要管理这些 MongoDB 用户和角色。 要托管这些用户和角色,您必须直接连接到 MongoDB 部署。
Cloud Manager 向您将Synced设置为Yes
的托管 MongoDB 用户和角色授予所有托管部署的访问权限。
Cloud Manager 将非托管 MongoDB 用户和角色(您将Synced设置为No
)的访问权限限制为这些用户和角色的特定部署。
注意
Enforce Consistent Set 默认值为 NO
。
要了解导入 MongoDB 部署对用户和角色管理有何影响,请参阅导入时的自动化和更新的安全设置。
roleNames
您无法为自动化托管的部署命名自定义角色MongodbAutomationAgentUserRole
,因为这是MongoDB Agent的 mms-automation
用户使用的内部角色名称。
先决条件
必须启用MongoDB 访问控制才能应用角色。 您可以在启用访问控制之前或之后创建角色,但只有在启用访问控制后,角色才会生效。
创建自定义 MongoDB 角色
MongoDB Cloud ManagerGoDeployment在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果 Deployment(数据库部署)页面尚未出现,请单击侧边栏中的 Deployment(数据库)。
显示“部署”页面。
转到 Security(快速入门)页面。
单击部署的Security标签页。
显示“安全”页面。
在Identifier 字段,输入要定义角色的数据库,然后输入角色的名称。
角色适用于定义它的数据库,并且可以授予collection级别的访问权限。角色名称及其数据库的组合唯一标识该角色。 填写Identifier字段,以满足您使用的身份验证和授权方法:
如果您既不使用 LDAP 身份验证,也不使用授权,请在database Identifier字段中键入数据库名称,并在name Identifier字段中键入您想要的角色名称。
如果您使用 LDAP 身份验证,但不使用 LDAP 授权,请在database Identifier字段中键入
$external
,并在name Identifier字段中键入您想要的角色名称。如果您使用任何具有 LDAP 授权的身份验证方法,请在database Identifier字段中键入
admin
,并在name Identifier字段中键入 LDAP Group DN。例子
在 LDAP 服务器中,您创建了一个标识名为
CN=DBA,CN=Users,DC=example,DC=com
的 LDAP 群组。 如果您想在链接到此 LDAP 群组的 Cloud Manager 中创建 DBA 角色,请在database Identifier字段中键入admin
,并在name Identifier字段中键入CN=DBA,CN=Users,DC=example,DC=com
。
编辑自定义角色
您可以更改自定义角色的权限。 您无法更改其名称或数据库。
查看角色的权限
要查看角色的权限:
MongoDB Cloud ManagerGoDeployment在MongoDB Cloud Manager中,Go项目的 页面。
如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
如果 Deployment(数据库部署)页面尚未出现,请单击侧边栏中的 Deployment(数据库)。
显示“部署”页面。
转到 Security(快速入门)页面。
单击部署的Security标签页。
显示“安全”页面。
每个权限将一个资源与一组权限操作配对。 所有角色都分配有一个数据库。 每个内置角色都分配给admin
数据库或每个数据库。