Overview
在本指南中,您可以学习;了解如何使用MongoDB Server中提供的身份验证机制对MongoDB进行身份验证。身份验证机制是驾驶员和服务器在连接之前确认客户端身份以确保安全的过程。
MongoDB版本兼容性
下表列出了MongoDB支持的身份验证机制以及每种机制兼容的MongoDB Server版本。 单击机制名称,学习;了解有关如何在应用程序中使用该机制的更多信息。
身份验证机制 | Atlas | Enterprise Advanced | Community |
|---|---|---|---|
是 | 是 | 是 | |
是 | 是 | 是 | |
是 | No | No | |
是 | 是 | No | |
No | 是 | No |
身份验证故障排除
本节介绍常见的身份验证错误及其解决方法。
在身份验证开启的情况下读取本地数据库时出现操作失败
如果在尝试读取 local数据库时遇到以下错误:
Mongo::Error::OperationFailure: not authorized on local to execute command { find: "oplog.rs", filter: { ts: { $gte: Timestamp 1497449043000|0 } }, sort: { $natural: 1 } } (13)
您可以通过调整用户角色来解决此问题,以确保用户具有本地数据库的特权。如果您特别想访问权限oplog,还可以创建一个自定义角色,对本地数据库的 oplog.rs集合具有读取访问权限。有关角色的更多信息,请参阅服务器手册中的 角色管理方法。
Mongo::Auth::Unauthorized 用户无权访问
一些用户报告遇到以下错误:
Mongo::Auth::Unauthorized: User ... is not authorized to access ...
升级到Ruby驾驶员版本 2.5 及更高版本后,该驾驶员已更改为默认使用SCRAM授权机制。如果创建用户时使用的授权机制与驾驶员使用的授权机制不匹配,则可能出现此错误。您可以使用 mongoid.yml文件中的 auth_mech 选项指定首选授权机制。