Docs 菜单
Docs 主页
/
Atlas
/ /

配置自定义数据库角色

如果内置角色不包括您所需的权限集,您可以在 Atlas 中创建自定义角色。Atlas 同时应用每个数据库用户的自定义角色与:

  • 当您添加数据库用户修改数据库用户时分配的任何内置角色

  • 当您添加数据库用户修改数据库用户时分配的任何 特定权限

您可以为每个数据库用户分配多个自定义角色。

注意

免费集群、弹性集群和无服务器实例限制

M0 免费集群、Flex 集群和无服务器实例(已弃用)中部署自定义角色的更改可能需要长达 30 秒的时间。

可用于自定义角色自定义角色 API权限操作是可用于内置角色的权限操作的子集。

要查看自定义角色特权列表,请参阅 API 参考资料。

重要

您必须使用 Atlas CLIAtlas 管理 API、Atlas 用户界面,或支持的集成来添加、修改或删除 Atlas 集群上的数据库角色。否则,Atlas 会回滚任何角色修改。

  • 您最多可以向单个数据库用户分配 20 个自定义角色

  • 默认下,每个项目最多可以创建 100 个自定义角色。重要提示:如果每个项目需要更多自定义角色,您可以通过Atlas管理API使用“设置一个项目限制”端点将自定义角色数量增加到最多 1400 个。

  • Atlas 审核项目操作日志中的自定义 MongoDB 角色的创建、删除和更新操作

  • 如果为用户分配了多个角色,而这些角色授予 某个对象的权限相互冲突,则 Atlas 会尊重任何角色内的 最高权限。

    例如:

    您创建两个自定义角色,并将其分配给用户 A:

    • 第一个自定义角色只授予数据库上的 read 特权。它还授予在数据库上进行绕过文档验证

    • 第二个角色授予对数据库的 dbAdmin 特权。它不授予 bypassDocumentValidation,这表示隐含拒绝绕过权限。

    用户 A 将拥有数据库的所有 dbAdmin 特权,因为 dbAdmin 是更高的数据库访问权限。用户 A 还可以 bypassDocumentValidation,因为 bypassDocumentValidation 是更高的绕过权限。

要配置自定义数据库角色,您必须拥有 Atlas 的 Organization OwnerProject OwnerProject Database Access Admin 访问权限。

如需使用 Atlas CLI 创建项目的自定义数据库角色,请运行以下命令:

atlas customDbRoles create <roleName> [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas customDbRoles create

要通过 Atlas 管理 API 创建自定义角色,请参阅创建一个。

请按照以下步骤通过 Atlas 用户界面创建自定义角色:

1

警告: 导航改进正在进行中

我们目前正在逐步推出改进的全新导航体验。如果以下步骤与您在 Atlas UI 中的视图不符,请参阅预览文档。

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Database Access

    显示数据库访问页面。

2
  1. 单击 Custom Roles 标签页。

  2. 单击 Add New Custom Role(添加新的数据库用户)。

3
字段
说明

Custom Role Name

自定义角色的名称。

重要:指定的角色名称只能包含字母、数字、下划线或连字符。此外,不能指定满足以下任何条件的角色名称:

  • 是项目中现有自定义角色已使用的名称

  • 是任何内置角色的名称

  • is atlasAdmin

  • 开头为 xgen-

Action or Role

角色授予的权限。单击下拉列表可查看可用权限操作角色的列表。

Atlas 将操作和角色分为以下类别:

  • Collection Actions,

  • Database Actions and Roles,

  • Global Actions and Roles,

  • Custom Roles (if any)

从单一类别中选择操作或角色。一旦选择了某个操作或角色,Atlas 就会禁用其他类别,但以下情况除外。如果您从 Global Actions and Roles 选择操作/角色,您仍然可以从 Custom Roles 选择操作/角色。

要授予其他类别中的操作和角色,请单击 Add an action or role 新增一行。

Atlas 会禁用项目中任何集群版本都无法使用的操作。自定义角色是在项目级别定义的,并且必须与项目集群使用的每个 MongoDB 版本兼容。

Database

授予所选操作和角色的数据库(如果适用)。

要指定数据库,请键入数据库名称或选择 Apply to any database

警告:如果选择 Apply to any database,则该角色将授予对 adminlocalconfig 数据库进行操作的权限。我们建议对这些数据库进行写入操作。

对于 Collection ActionsDatabase Actions and Roles 类别下的所有角色和操作,此字段是必填字段。

Collection

授予操作和角色的指定数据库内的集合(如果适用)。

要指定集合,请键入集合名称或选择 Apply to any collection

警告:如果选择 Apply to any collection,则角色将授予对 adminlocalconfig 数据库中集合进行操作的权限。我们建议对这些集合进行写入。

对于 Collection Actions 下的所有角色和操作,此字段是必填字段。

要对多个数据库和集合授予同一组权限,请单击 Add a database or collection

4

如需使用 Atlas CLI 列出项目的所有自定义数据库角色,请运行以下命令:

atlas customDbRoles list [options]

如需使用 Atlas CLI 返回指定项目中单个自定义数据库角色的详细信息,请运行以下命令:

atlas customDbRoles describe <roleName> [options]

要详细了解先前命令的语法和参数,请参阅 Atlas CLI 文档中的 atlas customDbRoles listatlas customDbRoles describe

提示

请参阅:相关链接

要通过 Atlas 管理 API 查看自定义角色,请参阅获取全部。

要通过 Atlas 用户界面查看自定义角色:

1

警告: 导航改进正在进行中

我们目前正在推出改进的全新导航体验。如果以下步骤与Atlas用户界面中的视图不匹配,请参阅预览文档。

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Database Access

    显示数据库访问页面。

2

如需使用 Atlas CLI 更新项目的自定义数据库角色, 请运行以下命令:

atlas customDbRoles update <roleName> [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas customDbRoles update

要通过 Atlas 管理 API 修改自定义角色,请参阅更新一个。

请按照以下步骤通过 Atlas 用户界面修改自定义角色:

1

警告: 导航改进正在进行中

我们目前正在推出改进的全新导航体验。如果以下步骤与Atlas用户界面中的视图不匹配,请参阅预览文档。

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Database Access

    显示数据库访问页面。

2
  1. 单击 Custom Roles 标签页。

  2. 单击要修改的角色旁边的 Edit。您可以修改角色的以下组件:

    • 自定义角色继承的操作或角色。

    • 这些权限适用的数据库和集合。

  3. 单击 Update Custom Role(更新配置文件)保存更改。

如需使用 Atlas CLI 删除项目的自定义数据库角色, 请运行以下命令:

atlas customDbRoles delete <roleName> [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas customDbRoles delete

要通过 Atlas 管理 API 删除自定义角色,请参阅删除一个。

请按照以下步骤通过 Atlas 用户界面删除自定义角色:

1

警告: 导航改进正在进行中

我们目前正在推出改进的全新导航体验。如果以下步骤与Atlas用户界面中的视图不匹配,请参阅预览文档。

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Security 标题下的 Database Access

    显示数据库访问页面。

2
  1. 单击 Custom Roles 标签页。

  2. 单击要删除的角色旁边的 Delete

  3. 单击对话框中的 Delete 以确认删除。

出现以下情况时无法删除自定义角色:

  • 删除角色后,一个或多个子角色将没有父角色或操作。

  • 当删除角色会导致一个或多个数据库用户没有角色时。

添加数据库用户修改数据库用户时,可以在 Atlas 用户界面中分配自定义角色。要通过 Atlas Administration API 分配自定义角色,请参阅创建数据库用户更新数据库用户。

后退

内置角色

在此页面上