我的目标是通过连接字符串了解针对MongoDb Standalone实例的用户身份验证。
该文档对您有很大帮助,但我有2种情况令人困惑:
https://docs.mongodb.com/manual/reference/connection-string/
我正在尝试确定是否给出了这三个排列,是否可以构建有效的连接字符串?
其中T是用户指定用户名,密码或数据库的位置,而F则不是用户指定的位置:
Username Password Database Valid
T T T T
T T F ???
T F T F
T F F F
F T T F
F T F F
F F T ???
F F F T
我认为在第二种情况下(T T F),我可以用“ admin”代替数据库名称,然后它将有一些进行身份验证的机会。
倒数第二种情况(F F T),其中指定了数据库,但未指定用户名或密码,这使我感到困惑。如果指定了“ admin”数据库名称,那么很简单……但是,如果不是“ admin”,则可以进行身份验证吗?
答案 0 :(得分:1)
T T F-如果用“ admin”数据库代替,则如果用户是在admin数据库中创建的,则将对用户进行身份验证,否则将收到身份验证错误
F F T-无论您指定什么数据库,它都会连接到指定的数据库,但是在使用db.auth()命令进行身份验证之前,您无法执行任何操作。