文档菜单
文档首页
/
MongoDB 手册
/ / /

自行管理部署中的用户

本页内容

  • 用户管理
  • LDAP管理的用户
  • 身份验证数据库
  • 集中式用户数据
  • 分片集群用户
  • 分片本地用户

要在MongoDB中验证客户端,您必须向MongoDB添加相应的用户。

您可以使用db.createUser()方法使用mongosh。您创建的第一个用户必须具有创建其他用户的权限。具有userAdminuserAdminAnyDatabase角色的用户都拥有创建其他用户的权限。

提示

另请参阅

您可以在创建用户时为用户分配角色来授予用户权限。您还可以通过更新现有用户来授予或撤销角色、更新密码。有关用户管理方法的完整列表,请参阅用户管理。

用户通过用户名及其相关的认证数据库进行唯一标识。MongoDB在用户创建时将其与唯一的userId关联。

LDAP服务器上创建的管理用户系统用户集合中没有关联的文档,因此没有与之关联的userId字段。

添加用户时,您会在特定的数据库中创建用户。您创建用户的数据库是该用户的认证数据库。

然而,用户的权限并不仅限于他们的认证数据库。因此,用户可以在不同的数据库中拥有权限。有关角色的更多信息,请参阅自托管部署中的基于角色的访问控制

用户名和认证数据库是该用户的唯一标识。MongoDB在MongoDB中创建用户时将其与唯一的userId关联。然而,在LDAP服务器上创建的LDAP管理用户系统用户集合中没有关联的文档,因此没有与之关联的userId字段。

如果两个用户具有相同的名称但创建在不同的数据库中,则它们是两个不同的用户。如果您希望单个用户在多个数据库中具有权限,请为每个适用的数据库创建单个用户并分配角色。

对于在MongoDB中创建的用户,MongoDB将所有用户信息,包括 名称密码 以及用户的 认证数据库,存储在 admin 数据库中的 system.users 集合中。

不要直接修改此集合。要管理用户,请使用指定的 用户管理命令

要为分片集群创建用户,连接到 mongos 实例并添加用户。要作为在 mongos 实例上创建的用户进行认证,您必须通过 mongos 实例进行认证。

在分片集群中,MongoDB将用户配置数据存储在 配置服务器admin 数据库中。

某些维护操作,例如 compactrs.reconfig(),需要直接连接到分片集群中的特定分片。要执行这些操作,您必须直接连接到分片并作为 分片本地 管理员用户进行身份验证。

要创建一个 分片本地 管理员用户,请直接连接到分片的主节点并创建用户。有关如何创建分片本地用户管理员的说明,请参阅 使用密钥文件认证部署自管理分片集群 教程。

MongoDB 将 分片本地 用户存储在分片自身的 admin 数据库中。这些 分片本地 用户与通过 mongos 添加到分片集群的用户是独立的。分片本地 用户是本地于分片的,并且无法通过 mongos 访问。

从 MongoDB 8.0 开始,您可以使用 directShardOperations 角色执行需要直接针对分片执行命令的维护操作。

应仅将分片直接连接用于分片特定的维护和配置。通常,客户端应通过 mongos 连接到分片集群。

警告

使用 directShardOperations 角色运行命令可能导致您的集群停止正常工作并可能造成数据损坏。仅将 directShardOperations 角色用于维护目的或在 MongoDB 支持的指导下使用。完成维护操作后,停止使用 directShardOperations 角色。

返回

本地主机例外