Docs 菜单
Docs 主页
/ /

高级用户配置

本页介绍如何在Atlas Data Federation中为数据库用户配置高级身份验证和授权设置。这包括可用的身份验证方法以及如何使用 Atlas CLI、Atlas 管理 API 和 Atlas 用户界面管理用户。

注意

在 Atlas 中,每个 Atlas 项目默认最多支持 100 个数据库用户。如果您的项目需要超过 100 个数据库用户,您可以使用 Atlas Administration API 来增加限额。如需帮助,请联系 Atlas 支持团队

要使用高级数据库用户配置,您必须在Atlas中拥有 Organization OwnerProject OwnerProject Database Access Admin 访问权限。

Atlas (+adf+) 为数据库用户提供以下形式的身份验证:

SCRAM 是 MongoDB 的默认身份验证方法。SCRAM 要求为每个用户设置密码。

SCRAM 认证用户的身份验证数据库admin 数据库。

注意

默认下,Atlas支持SCRAM-SHA-256身份验证。如果您在MongoDB 4.0 之前创建用户,则必须更新MongoDB 4.0,更新其密码以生成SCRAM-SHA-256凭证。您可以重复使用现有密码。

X.509 证书,也称为双向 TLS 或 mTLS,允许使用可信证书进行无密码身份验证。

通过 X.509 身份验证的用户的身份验证数据库$external 数据库。

如果您启用LDAP授权,则使用 Atlas 托管的 X.509 证书进行身份验证的用户将无法连接到集群。要启用LDAP并使用 X.509 用户连接到集群,请参阅设置自管理的 X.509 证书。

您可以创建一个使用 AWS IAM 用户或角色 ARN 进行身份验证的数据库用户。

AWS IAM 认证用户的身份验证数据库$external 数据库。

AWS IAM 身份验证仅在使用 MongoDB 版本 7.0 及更高版本的集群上可用。

项目用户可以使用不同的身份验证方法。

创建用户后便无法更改此用户的身份验证方法。 要使用备用身份验证方法,必须创建一个新用户。

Atlas CLI 使用以下命令创建新的数据库用户和 X.509 证书。您指定的选项决定了身份验证方法。

如需使用 Atlas CLI 创建项目的数据库用户,请运行以下命令:

atlas dbusers create [builtInRole]... [options]

如需使用 Atlas CLI 为指定数据库用户创建 Atlas 托管的新 X.509 证书,请运行以下命令:

atlas dbusers certs create [options]

要详细了解之前命令的语法和参数,请参阅 Atlas CLI 文档中的 atlas dbusers createatlas dbusers certs create

提示

请参阅:相关链接

您可以通过 Atlas Administration API 添加数据库用户。您指定的选项决定了身份验证方法。要了解更多信息,请参阅创建一个数据库用户。

选择一种身份验证机制,然后按照步骤使用 Atlas 用户界面创建新的数据库用户。

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

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

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

显示“数据库和网络访问”页面。

2
  1. 如果尚未显示,请单击 Database Users 标签页。

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

3

Add New Database User(添加新数据库用户)模态窗口的 Authentication Method(身份验证方法)部分中,选择标有 Password(密码)的框。

4

Password Authentication 下面有两个文本字段。

  1. 在顶部文本字段中输入新用户的用户名。

  2. 在下方文本字段中输入新用户的密码。

要使用 Atlas 自动生成的密码,请单击 Autogenerate Secure Password 按钮。

5

选择数据库用户权限。您可以通过以下一种或多种方式为新用户分配权限:

  • Built-in Role 下拉菜单中,选择一个内置角色。您可以在 Atlas UI 内为每个数据库用户选择一个内置角色。如果删除了默认选项,可以单击 Add Built-in Role 以选择一个新的内置角色。

  • 如果定义了任何自定义角色,可以展开 Custom Roles(自定义角色)部分,并从 Custom Roles(自定义角色)下拉菜单中选择一个或多个角色。单击 Add Custom Role(添加自定义角色),以添加更多自定义角色。您还可以单击 Custom Roles(自定义角色)链接,以查看项目的自定义角色。

  • 展开 Specific Privileges 部分,从 Specific Privileges 下拉菜单中选择一个或多个权限。点击 Add Specific Privilege,添加更多权限。这将为用户分配对单个数据库和集合的特定权限。

Atlas 可以将一个内置角色、多个自定义角色和多个特定权限应用到单个数据库用户。

要删除已应用的角色或权限,请单击要删除的角色或权限旁边的 Delete(删除)。

注意

如果只选择了一个选项,Atlas 不会在 Built-in Role(内置角色)、Custom Role(自定义角色)或 Specific Privilege(特定权限)选项旁边显示 Delete(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。

有关授权的更多信息,请参阅 MongoDB 手册中的基于角色的访问控制内置角色

6

默认情况下,用户可以访问项目中的所有集群和联合数据库实例。您可以通过执行如下操作来限制对特定集群和联合数据库实例的访问:

  1. Restrict Access to Specific Clusters/Federated Database Instances 切换到 ON

  2. Grant Access To 列表中选择要向该用户授予其访问权限的集群和联合数据库实例。

7

Temporary User 切换为 On,然后选择一个时间,在此时间之后 Atlas 可以从 Temporary User Duration 下拉列表中删除该用户。您可以选择以下时间段之一作为用户的存在时间:

  • 6 小时

  • 1 天

  • 1 周

临时用户会在 Database Users 标签页中显示 Atlas 删除该用户前的剩余时间。Atlas 删除临时用户后,任何使用临时用户凭证的客户端或应用程序都将失去对集群的访问权限。

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

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

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

显示“数据库和网络访问”页面。

2
  1. 如果尚未显示,请单击 Database Users 标签页。

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

3
4
字段
说明

Common Name

受 TLS/SSL 证书保护的用户公用名 (CN)。有关更多信息,请参阅 RFC 2253

示例,如果您的常用名是“Jane Doe”,您的组织是“MongoDB”,您的国家/地区是“US”,则在Common Name字段中插入以下内容:

CN=Jane Doe,O=MongoDB,C=US

User Privileges

可以通过以下方式之一分配角色:

  • 选择 Atlas admin,为用户提供 readWriteAnyDatabase 以及许多管理权限。

  • 选择 readWriteAnyDatabase,这将为用户提供读取和写入任何数据库的权限。

  • 选择 readAnyDatabase,为用户提供读取任何数据库的权限。

  • 选择Select Custom Role以选择之前在 Atlas 中创建的自定义角色。 如果内置数据库用户角色无法描述所需的权限集,您可以为数据库用户创建自定义角色。 有关自定义角色的更多信息,请参阅配置自定义数据库角色。

  • 单击 Add Default Privileges(添加默认权限)。单击此选项之后,可以选择个别角色以及指定角色适用的数据库。(可选)对于 readreadWrite 角色,还可以指定一个集合。如果没有为 readreadWrite 指定集合,角色将适用于数据库中的所有非system(系统)集合。

有关Atlas内置权限的更多信息,请参阅内置角色。

有关授权的更多信息,请参阅 MongoDB 手册中的基于角色的访问控制内置角色

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

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

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

显示“数据库和网络访问”页面。

2
  1. 如果尚未显示,请单击 Database Users 标签页。

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

3

Add New Database User 模态窗口的 Authentication Method 部分中,选择标有 AWS IAM 的框。

4
  1. AWS IAM Type 下拉菜单中选择用户类型。

  2. 输入 AWS 用户 ARN 。单击 See instruction below 链接以获取有关查找您的 ARN 的帮助。

5

选择数据库用户权限。您可以通过以下一种或多种方式为新用户分配权限:

  • Built-in Role 下拉菜单中,选择一个内置角色。您可以在 Atlas UI 内为每个数据库用户选择一个内置角色。如果删除了默认选项,可以单击 Add Built-in Role 以选择一个新的内置角色。

  • 如果定义了任何自定义角色,可以展开 Custom Roles(自定义角色)部分,并从 Custom Roles(自定义角色)下拉菜单中选择一个或多个角色。单击 Add Custom Role(添加自定义角色),以添加更多自定义角色。您还可以单击 Custom Roles(自定义角色)链接,以查看项目的自定义角色。

  • 展开 Specific Privileges 部分,从 Specific Privileges 下拉菜单中选择一个或多个权限。点击 Add Specific Privilege,添加更多权限。这将为用户分配对单个数据库和集合的特定权限。

Atlas 可以将一个内置角色、多个自定义角色和多个特定权限应用到单个数据库用户。

要删除已应用的角色或权限,请单击要删除的角色或权限旁边的 Delete(删除)。

注意

如果只选择了一个选项,Atlas 不会在 Built-in Role(内置角色)、Custom Role(自定义角色)或 Specific Privilege(特定权限)选项旁边显示 Delete(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。

有关授权的更多信息,请参阅 MongoDB 手册中的基于角色的访问控制内置角色

6

默认情况下,用户可以访问项目中的所有集群和联合数据库实例。您可以通过执行如下操作来限制对特定集群和联合数据库实例的访问:

  1. Restrict Access to Specific Clusters/Federated Database Instances 切换到 ON

  2. Grant Access To 列表中选择要向该用户授予其访问权限的集群和联合数据库实例。

7

Temporary User 切换为 On,然后选择一个时间,在此时间之后 Atlas 可以从 Temporary User Duration 下拉列表中删除该用户。您可以选择以下时间段之一作为用户的存在时间:

  • 6 小时

  • 1 天

  • 1 周

临时用户会在 Database Users 标签页中显示 Atlas 删除该用户前的剩余时间。Atlas 删除临时用户后,任何使用临时用户凭证的客户端或应用程序都将失去对集群的访问权限。

8

使用 AWS IAM 身份验证与 mongosh 连接 Atlas 需要 shell 版本 v0.9.0 或更高版本。

请考虑以下内容:

  • 使用 AWS IAM 凭证,将访问密钥 ID 作为用户名,将密钥作为密码。

  • authSource查询参数是 $external,URL编码为 %24external

  • authMechanism 查询参数是 MONGODB-AWS

    例子

    mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>
1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

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

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

显示“数据库和网络访问”页面。

2

单击 Add New Database User or Group(添加新的数据库用户)。

注意

将 Workforce IdP 应用到 Atlas 之前,此按钮显示 Add New Database User

3

Authentication Method 部分,选择 Federated Auth

注意

为组织启用 Workforce IdP 之前,您无法选中此复选框。

4

a. 在Select Identity Provider部分中,选择已配置的OIDC身份提供程序。

  1. 指定与您配置的 Workforce 身份提供程序关联的用户标识符或群组标识符。

注意

对于 Azure Entra ID 用户,此值映射到 Azure 用户组的 Object Id,而不是用户组名称。

5

要向新用户或群组分配权限,请执行以下一项或多项任务:

  • Built-in Role 下拉菜单中,选择一个内置角色

    • 您可以在 Atlas 用户界面中为每个数据库组选择一个内置角色。

    • 如果删除默认选项,则可以单击Add Built-in Role选择新的内置角色。

  • 选择或添加自定义角色。

    • 如果您定义了任何自定义角色,则可以展开Custom Roles部分,然后从Custom Roles下拉菜单中选择一个或多个角色。

    • 单击Add Custom Role以添加更多自定义角色。

    • 单击Custom Roles链接可查看项目的自定义角色。

  • 添加权限。

    • 展开Specific Privileges部分,然后从Specific Privileges下拉菜单中选择一个或多个权限。

    • 单击Add Specific Privilege可添加更多权限。 这将为群组分配对各个数据库和集合的特定权限。

  • 删除已应用的角色或特权。

    • 单击Delete旁边
      要删除的角色或特权。

    注意

    如果只选择了一个选项,Atlas 不会在 Built-in Role(内置角色)、Custom Role(自定义角色)或 Specific Privilege(特定权限)选项旁边显示 Delete(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。

Atlas 可以将一个内置角色、多个自定义角色和多个特定权限应用到 数据库群组。

要了解有关授权的更多信息,请参阅 MongoDB 手册中的基于角色的访问控制内置角色

6

默认情况下,群组可以访问项目中的所有集群和联合数据库实例。 要限制对特定集群和联合数据库实例的访问,请执行以下操作:

  1. Restrict Access to Specific Clusters/Federated Database Instances 切换到 On

  2. Grant Access To(向其授予访问权限)列表中选择要向该群组授予其访问权限的集群和联合数据库实例。

7

Temporary UserTemporary Group切换为On ,然后选择一个时间,在此时间之后 Atlas 可以从Temporary User DurationTemporary Group Duration下拉列表中删除用户或群组。 您可以选择以下时间段之一作为群组的存在时间:

  • 6 小时

  • 1 天

  • 1 周

Database Users标签页中,临时用户或临时群组会显示 Atlas 删除这些用户或群组之前的剩余时间。 Atlas 删除用户或群组后,使用临时用户或群组档案的任何客户端或应用程序都将失去对集群的访问权限。

8

执行以下步骤之一:

  • 如果已添加用户,请单击Add User按钮。

  • 如果已添加群组,请单击Add Group按钮。

注意

从 MongoDB 8.0 开始,LDAP 身份验证和授权已弃用。该功能可用,并将在 MongoDB 的整个生命周期内继续运行,无需更改 8。LDAP 将在将来的主要版本中删除。

有关详细信息,请参阅 LDAP 弃用

按照步骤配置 LDAP 身份验证,然后按照步骤添加 LDAP 数据库用户或群组。

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

atlas dbusers list [options]

要使用 Atlas CLI 返回指定项目中单个 Atlas 数据库用户的详细信息,请运行以下命令:

atlas dbusers describe <username> [options]

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

提示

请参阅:相关链接

如需使用 Atlas CLI 列出数据库用户的所有 Atlas 托管的未过期证书, 请运行以下命令:

atlas dbusers certs list <username> [options]

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

要使用 Atlas 管理 API 查看 Atlas 数据库用户,请参阅获取全部。

要在 Atlas 用户界面中查看 Atlas 数据库用户和 X.509 证书:

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

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

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

显示“数据库和网络访问”页面。

2
  1. 如果尚未显示,请单击 Database Users 标签页。

  2. 单击用户的 Edit,查看其权限、身份验证详情和 X.509 证书。

如需使用 Atlas CLI 更新项目的数据库用户,请运行以下命令:

atlas dbusers update <username> [options]

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

您可以通过 Atlas Administration API 更新数据库用户。要了解更多信息,请参阅更新一个。

要修改 Atlas 项目的现有用户:

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

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

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

显示“数据库和网络访问”页面。

2
  1. 如果尚未显示,请单击 Database Users 标签页。

  2. 单击要修改的用户的 Edit

    可以修改分配给用户的权限和身份验证详细信息。不能修改身份验证方法。

    下表描述了您可以对每个用户执行的操作:

    用户类型
    操作

    SCRAM 认证用户

    编辑用户的密码。

    X.509 证书认证的用户

    下载新证书。

    AWS IAM 用户

    修改数据库访问权限。

    临时用户

    修改用户存在的时间段,或使用户成为永久用户(前提是用户的到期日期尚未过去)。

    注意

    无法将永久用户更改为临时用户。如果将临时用户更改为永久用户,就无法再次将其设置为临时用户。

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

如需使用 Atlas CLI 删除项目的数据库用户, 请运行以下命令:

atlas dbusers delete <username> [options]

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

您可以通过 Atlas Administration API 删除数据库用户。要了解更多信息,请参阅删除一个。

要使用 Atlas 用户界面删除 Atlas 项目的现有用户:

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

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

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

显示“数据库和网络访问”页面。

2
  1. 如果尚未显示,请单击 Database Users 标签页。

  2. 单击要删除的用户旁边的 Delete

  3. 再次单击 Delete 进行确认。

  4. 再次单击 Delete 进行确认。

后退

身份验证方法

在此页面上