Docs 菜单
Docs 主页
/
Atlas
/ /

配置自定义数据库角色

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

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

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

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

注意

免费集群、Flex集群、共享集群和无服务器实例限制

对自定义角色的更改可能需要长达 30 秒才能在 M0 免费集群、Flex 集群、M2/M5 共享集群(已弃用)和无服务器实例(已弃用)中部署。

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

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

重要

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

  • 您可以向单个数据库用户最多分配 20 个自定义角色,为每个项目最多创建 100 个自定义角色。如果每个数据库用户或每个项目需要更多自定义角色,请联系 Atlas 支持部门

  • 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用户界面中的视图不匹配,请参阅预览文档。

  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 分配自定义角色,请参阅创建数据库用户更新数据库用户。

后退

内置角色和特权

在此页面上