配置数据库用户
创建数据库用户,以向客户端提供对项目中集群的访问权限。数据库用户的访问权限由分配给该用户的角色决定。创建数据库用户时,任何内置角色都会将该用户添加到 Atlas 项目的所有集群中。您可以删除默认的内置角色,设置特定权限和自定义角色,将用户添加到特定的集群中。
数据库用户与 Atlas 用户是分开的。数据库用户 可访问 MongoDB 数据库,而 Atlas 用户可访问 Atlas 应用程序本身。 Atlas 支持创建临时数据库用户, 这些用户会在用户可配置的 7 天期限内自动过期。
Atlas 可审核项目的操作日志中数据库用户的创建、删除和更新。Atlas 可审核临时和非临时数据库用户的相关操作。
要查看项目的操作日志:
在 Atlas 中,转到 Project Activity Feed(项目设置)页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
执行以下步骤之一:
点击导航栏右侧的 Project Activity Feed 图标。
在 Projects 菜单旁边,展开 Options 菜单,单击 Project Settings,然后单击侧栏中的 Activity Feed。
此时将显示 项目操作日志页面。
有关项目操作日志的更多信息,请参阅查看所有活动。
在 Atlas 中,每个 Atlas 项目默认最多支持 100 个数据库用户。如果您的项目需要超过 100 个数据库用户,可以使用 Atlas Administration API 来增加限值。如需帮助,请联系 Atlas 支持部门。
重要
您必须使用 Atlas CLI、Atlas 管理 API、Atlas 用户界面,或支持的集成来添加、修改或删除 Atlas 集群上的数据库用户。否则,Atlas 会回滚任何用户修改。
数据库用户身份验证
Atlas 为数据库用户提供以下形式的身份验证:
X.509 证书,也称为双向 TLS 或 mTLS,允许使用可信证书进行无密码身份验证。
通过 X.509 身份验证的用户的身份验证数据库是 $external
数据库。
如果您启用 LDAP 授权,则您无法通过使用 Atlas 托管 X.509 证书进行身份验证的用户连接集群。要启用 LDAP 并使用 X. 509 用户连接到集群,请参阅设置自管理 X.509 身份验证。
注意
从 MongoDB 8.0 开始,LDAP 身份验证和授权已弃用。该功能可用,并将在 MongoDB 的整个生命周期内继续运行,无需更改 8。LDAP 将在将来的主要版本中删除。
有关详细信息,请参阅 LDAP 弃用。
您可以创建一个使用 LDAP 进行身份验证的数据库用户。
经过 LDAP 身份验证的用户的身份验证数据库是 $external
数据库。
如果您启用 LDAP 授权,则您无法通过使用 Atlas 托管 X.509 证书进行身份验证的用户连接集群。要启用 LDAP 并使用 X.509 用户连接集群,请参阅设置自管理 X.509 身份验证.
必需的访问权限
要添加数据库用户,必须拥有 Atlas 的 Organization Owner
或 Project Owner
访问权限。
添加数据库用户
项目用户可以使用不同的身份验证方法。
创建用户后便无法更改此用户的身份验证方法。 要使用备用身份验证方法,必须创建一个新用户。
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 create 和 atlas dbusers certs create。
您可以通过 Atlas Administration API 添加数据库用户。您指定的选项决定了身份验证方法。要了解更多信息,请参阅创建一个数据库用户。
选择一种身份验证机制,然后按照步骤使用 Atlas 用户界面创建新的数据库用户。
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
分配特权。
选择数据库用户权限。您可以通过以下一种或多种方式为新用户分配权限:
从 Built-in Role 下拉菜单中,选择一个内置角色。您可以在 Atlas 用户界面内为每个数据库用户选择一个内置角色。如果删除了默认选项,可以单击 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(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
输入用户信息。
在 Common Name 文本字段中输入新用户的用户名。
(可选)如果要在创建新用户后下载 Atlas 管理的证书,请将 Download certificate when user is added 开关切换到 On。
注意
要在保存时下载证书,您必须提供证书的到期日期。
(可选)选择证书有效期。
X.509 证书在您设置的证书到期日期后过期并失效。用户无法使用过期的 X.509 证书登录,必须获取新的证书才能登录。
为了帮助管理此问题,当您创建一个启用 X.509 身份验证的新用户时,Atlas 会自动创建项目级警报。此警报会在该用户的最新证书过期前 30 天发送通知,每 24 小时重复一次。您可以从 Atlas 的 Alert Settings页面查看和编辑此警报。有关配置警报的更多信息,请参阅配置警报设置。
重要
如果用户丢失证书,则需要更换新证书后才能重新登录。
重要
您无法撤销 X. 509 证书。要撤销 X.509 证书身份验证用户对项目的访问权限,必须删除该用户。
如果您希望管理自己的 X. 509 证书,则可以通过自管理 X. 509 证书上传 PEM 编码的证书颁发机构。
分配特权。
选择数据库用户权限。您可以通过以下一种或多种方式为新用户分配权限:
从 Built-in Role 下拉菜单中,选择一个内置角色。您可以在 Atlas 用户界面内为每个数据库用户选择一个内置角色。如果删除了默认选项,可以单击 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(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。
在用户可以访问的项目中指定资源。默认情况下,用户可以访问项目中的所有集群和联合数据库实例。您可以通过执行如下操作来限制对特定集群和联合数据库实例的访问:
将 Restrict Access to Specific Clusters/Federated Database Instances 切换到 ON。
从 Grant Access To 列表中选择要向该用户授予其访问权限的集群和联合数据库实例。
注意
AWS IAM 身份验证仅在使用 MongoDB 版本 5.0 及更高版本的集群上可用。
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
分配特权。
选择数据库用户权限。您可以通过以下一种或多种方式为新用户分配权限:
从 Built-in Role 下拉菜单中,选择一个内置角色。您可以在 Atlas 用户界面内为每个数据库用户选择一个内置角色。如果删除了默认选项,可以单击 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(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。
AWS IAM 连接字符串示例
使用 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>
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
打开 Add New Database User or Group(添加新的数据库用户)对话框。
单击 Add New Database User or Group(添加新的数据库用户)。
注意
在将 Workforce IdP 应用到 Atlas 之前,此按钮显示 Add New Database User。
选择 Federated Auth(Atlas SQL)。
在 Authentication Method 部分,选择 Federated Auth。
注意
在为组织启用 Workforce IdP 之前,您无法选中此复选框。
分配用户或群组权限。
要向新用户或群组分配权限,请执行以下一项或多项任务:
从 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 手册中的基于角色的访问控制和内置角色。
注意
从 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 list 和 atlas dbusers describe。
查看数据库用户的 X.509 证书
如需使用 Atlas CLI 列出数据库用户的所有 Atlas 托管的未过期证书, 请运行以下命令:
atlas dbusers certs list <username> [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas dbusers certs list。
要使用 Atlas 管理 API 查看 Atlas 数据库用户,请参阅获取全部。
要在 Atlas 用户界面中查看 Atlas 数据库用户和 X.509 证书:
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
修改数据库用户
如需使用 Atlas CLI 更新项目的数据库用户,请运行以下命令:
atlas dbusers update <username> [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas dbusers update。
您可以通过 Atlas Administration API 更新数据库用户。要了解更多信息,请参阅更新一个。
要修改 Atlas 项目的现有用户:
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
删除数据库用户
如需使用 Atlas CLI 删除项目的数据库用户, 请运行以下命令:
atlas dbusers delete <username> [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas dbusers delete.。
您可以通过 Atlas Administration API 删除数据库用户。要了解更多信息,请参阅删除一个。
要使用 Atlas 用户界面删除 Atlas 项目的现有用户:
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。