答案 0 :(得分:0)
不确定this ticket是否相关,因为我仍然在MongoDB 4.0.9中看到此问题,但是我解决该问题的方法是不使用db.auth()
而是退出Shell,然后再次登录:
mongo --ssl mongodb://myhost.io --authenticationDatabase admin -u adminUser -p
答案 1 :(得分:0)
您授权的用户过多。一种解决方案是先退出外壳,然后尝试再次授权:
mongo
创建连接时无需授权
use your_file_db
现在您可以使用
db.auth("db_user","db_pass")
现在您可以获取记录了。
或者,您可以直接授权超级管理员,也可以在数据库中获取记录。
答案 2 :(得分:0)
根据以下mongodb jira问题,每个会话仅允许一次身份验证 https://jira.mongodb.org/browse/SERVER-40967
您只能在通过mongo shell连接时使用的mongodb中使用该用户。
为任何其他用户执行db.auth()都会出错。
答案 3 :(得分:0)
您需要使用db.logout()
来注销用户,更重要的是,必须在当前用户(您要注销的用户)有权访问的数据库内部进行此操作。
例如,假设您当前在admin
数据库中。如果您切换到其他数据库然后注销,然后使用新用户登录,则会显示此错误。