目录:
- 认证方法
- 认证机制
- 内部身份验证
- 分片集群的认证
前言:
身份验证是验证客户端身份的过程。当启用访问控制(即授权)时,MongoDB要求所有客户端对自己进行身份验证,以确定其访问。
虽然身份验证和授权紧密相连,但身份验证与授权是不同的。身份验证验证用户的身份;身份验证确定被验证用户对资源和操作的访问。
认证方法
要作为用户进行身份验证,必须提供用户名、密码和与该用户关联的身份验证数据库。
使用mongo shell进行身份验证:
- 连接到mongod或mongos实例时,使用mongo命令行身份验证选项(
--username
、--password
和--authenticationDatabase
) - 首先连接到mongod或mongos实例,然后对身份验证数据库运行
authenticate
命令或db.auth()
方法。
重要:
作为不同的用户进行多次身份验证不会删除先前已验证用户的凭据。这可能会导致连接具有超出用户预期的权限,并导致逻辑会话中的操作引发错误。
有关使用MongoDB驱动程序进行身份验证的示例,请参阅驱动程序文档。
认证机制
MongoDB支持许多身份验证机制,客户端可以使用这些机制来验证自己的身份。这些机制允许MongoDB集成到现有的身份验证系统中。
MongoDB支持多种认证机制:
- SCRAM(默认)
- x.509 证书身份验证
除了支持上述机制外,MongoDB Enterprise还支持以下机制: - LDAP 代理认证
- Kerberos 认证
内部身份验证
除了验证客户机的身份之外,MongoDB还可以要求副本集和分片群集的成员对其各自副本集或分片群集的成员身份进行身份验证。有关详细信息,请参阅内部/成员身份验证。
分片集群的认证
在分片集群中,客户机通常直接对mongos实例进行身份验证。但是,某些维护操作可能需要直接对特定碎片进行身份验证。有关身份验证和分片群集的详细信息,请参阅分片群集用户。
网友评论