验证是验证客户端身份的过程。 当启用访问控制(即授权)时,MongoDB要求所有客户端进行身份验证,以确定其访问。
虽然认证和授权密切相关,但认证与授权不同。认证是验证用户的身份; 授权确定验证的用户对哪些资源和操作的访问。
认证方法
要验证用户,可参考MongoDB提供的db.auth()方法。
对于mongo shell和MongoDB工具,还可以通过从命令行传递用户身份验证信息来验证用户。
认证机制
MongoDB支持许多身份验证机制,客户端可以使用它们来验证身份。 这些机制允许MongoDB集成到现有的身份验证系统中。
MongoDB支持多种认证机制:
- SCRAM-SHA-1
MongoDB质询和响应(MongoDB-CR)。MongoDB 3.0版本更改:3.0中创建的新质询响应用户将使用SCRAM-SHA-1。 如果使用MongoDB 2.6的用户数据,MongoDB 3.0将继续使用MONGODB-CR。
MongoDB Enterprise除了支持上述机制外,还支持以下机制:
内部认证
除了验证客户端的身份之外,MongoDB还可以要求副本集和分片集群的成员对其各自的副本集或分片集群进行身份验证。 有关详细信息,请参阅内部认证。
分片集群的认证
在分片集群中,客户端通常直接向mongos实例进行身份验证。 但是,某些维护操作可能需要直接对特定的分片进行身份验证。 有关认证和分片集群的更多信息,请参阅分片集群用户。