MongoDB-C# Driver账户密码登录问题

时间:2023-03-10 04:34:41
MongoDB-C# Driver账户密码登录问题

MongoDb在3.0之后添加了SCRAM-SHA-1,用户验证模式。添加的用户,默认登录协议也是这个。

在登陆的时候就要选择使用这种方式登录。有的gui客户端的登录验证方式还是MONGODB-CR。因此会验证失败,错误日志信息:

Failed to authenticate user@db with mechanism MONGODB-CR: AuthenticationFailed: MONGODB-CR credentials missing in the user document

使用命令 db.system.users.find(),可以查看用户的登录验证协议,如:

{ "_id" : "userdb.myuser", "user" : "myuser", "db" : "userdb",
"credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000,
"salt" : "XXXXXXXXXXXXXXXXXXXXXXXX", "storedKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX", "serverKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX" } }
, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }

在使用C# Driver操作mongo时,如果驱动版本小于1.10,就连接不上。必须要大于1.10版本,使用字符串方式,就可以连接了。

mongodb://user:pwd@127.0.0.1:2222/db

也可以修改,用户的验证协议,这种方式显然是不推荐的,可参考:http://21jhf.iteye.com/blog/2216103。

C# Driver 1.10版本:http://files.cnblogs.com/files/zhaoyihao/CSharpDriver-1.10.1.zip