配置自定义数据库角色
当内置角色不包含所需的权限集时,您可以在 Atlas 中创建自定义角色。 Atlas 将每个数据库用户的自定义角色与以下内容一起应用:
您可以为每个数据库用户分配多个自定义角色。
可用于 自定义角色 和 自定义角色 API 的权限 操作 是可用于 内置角色的权限操作的子集。
要查看自定义角色特权列表,请参阅 API 参考资料。
注意事项
重要
您必须使用Atlas CLI 、 Atlas Administration API 、Atlas UI 或支持的集成来添加、修改或删除 Atlas 集群上的数据库角色。否则,Atlas 将回滚任何角色修改。
您最多可以向单个数据库用户分配20个自定义角色,每个项目最多可以创建100自定义角色。如果您需要为每个数据库用户或每个项目提供更多自定义角色,请联系Atlas 支持部门。
Atlas 审核项目操作日志中的自定义 MongoDB 角色的创建、删除和更新操作
如果为用户分配了多个角色,而这些角色授予 某个对象的权限相互冲突,则 Atlas 会尊重任何角色内的 最高权限。
例子
您创建两个自定义角色,并将其分配给用户 A:
第一个自定义角色仅授予数据库上的
read
特权。它还在数据库上授予bypassDocumentValidation 权限。第二个角色授予对数据库的
dbAdmin
特权。它不授予bypassDocumentValidation ,这是对绕过权限的隐式拒绝。
用户 A 将拥有数据库的所有
dbAdmin
特权,因为dbAdmin
是更高的数据库访问权限。用户 A 也将拥有bypassDocumentValidation ,因为bypassDocumentValidation是更高的旁路权限。
必需的访问权限
要配置自定义数据库角色,您必须拥有 Atlas 的 Organization Owner
或 Project Owner
访问权限。
添加自定义角色
如需使用 Atlas CLI 创建项目的自定义数据库角色,请运行以下命令:
atlas customDbRoles create <roleName> [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas customDbRoles create。
要通过 Atlas 管理 API 创建自定义角色,请参阅创建一个。
请按照以下步骤通过 Atlas 用户界面创建自定义角色:
在 AtlasDatabase Access 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Database Access 。
显示数据库访问页面。
输入角色信息。
字段 | 说明 |
---|---|
Custom Role Name | 自定义角色的名称。 重要指定的角色名称只能包含字母、数字、下划线和破折号。此外,不能指定满足以下任何条件的角色名称:
|
Action or Role | 角色授予的权限。单击下拉列表可查看可用权限操作和角色的列表。 Atlas 将操作和角色分为以下类别:
从单一类别中选择操作或角色。一旦选择了某个操作或角色,Atlas 就会禁用其他类别,但以下情况除外。如果您从 Global Actions and Roles 选择操作/角色,您仍然可以从 Custom Roles 选择操作/角色。 要授予其他类别中的操作和角色,请单击 Add an action or role 新增一行。 Atlas 会禁用项目中任何集群版本都无法使用的操作。自定义角色是在项目级别定义的,并且必须与项目集群使用的每个 MongoDB 版本兼容。 |
Database | 授予所选操作和角色的数据库(如果适用)。 对于 Collection Actions 和 Database Actions and Roles 类别下的所有角色和操作,此字段是必填字段。 |
Collection | 授予操作和角色的指定数据库内的集合(如果适用)。 对于 Collection Actions 下的所有角色和操作,此字段是必填字段。 |
要对多个数据库和集合授予同一组权限,请单击 Add a database or collection。
查看自定义角色
如需使用 Atlas CLI 列出项目的所有自定义数据库角色,请运行以下命令:
atlas customDbRoles list [options]
如需使用 Atlas CLI 返回指定项目中单个自定义数据库角色的详细信息,请运行以下命令:
atlas customDbRoles describe <roleName> [options]
要详细了解先前命令的语法和参数,请参阅 Atlas CLI 文档中的 atlas customDbRoles list 和 atlas customDbRoles describe。
要通过 Atlas 管理 API 查看自定义角色,请参阅获取全部。
要通过 Atlas 用户界面查看自定义角色:
在 AtlasDatabase Access 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Database Access 。
显示数据库访问页面。
修改自定义角色
如需使用 Atlas CLI 更新项目的自定义数据库角色, 请运行以下命令:
atlas customDbRoles update <roleName> [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas customDbRoles update。
要通过 Atlas 管理 API 修改自定义角色,请参阅更新一个。
请按照以下步骤通过 Atlas 用户界面修改自定义角色:
在 AtlasDatabase Access 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Database Access 。
显示数据库访问页面。
删除自定义角色
如需使用 Atlas CLI 删除项目的自定义数据库角色, 请运行以下命令:
atlas customDbRoles delete <roleName> [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas customDbRoles delete。
要通过 Atlas 管理 API 删除自定义角色,请参阅删除一个。
请按照以下步骤通过 Atlas 用户界面删除自定义角色:
在 AtlasDatabase Access 中,转到项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击Security标题下的Database Access 。
显示数据库访问页面。
出现以下情况时无法删除自定义角色:
删除角色后,一个或多个子角色将没有父角色或操作。
当删除角色会导致一个或多个数据库用户没有角色时。
分配自定义角色
添加数据库用户或修改数据库用户时,可以在 Atlas 用户界面中分配自定义角色。要通过 Atlas Administration API 分配自定义角色,请参阅创建数据库用户或更新数据库用户。