任何人都可以解释两个用户在mongodb3.4.5中的区别
//the first user { "_id" : "admin.guguji55", "user" : "guguji55", "db" : "admin", "roles" : [ { "role" : "readWrite", "db" : "test" } ] } //the second user { "_id" : "test.guguji66", "user" : "guguji66", "db" : "test", "roles" : [ { "role" : "readWrite", "db" : "test" } ] }
我创build了两个用户,'guguji55'不能连接我的testing数据库,但'guguji66'可以做到这一点。我不知道为什么。我的nodejs连接代码如下:
MongoClient.connect('mongodb://guguji66:du****kuan****@localhost:27017/test', function(err, db) {});
//the first user { "_id" : "admin.guguji55", "user" : "guguji55", "db" : "admin", "roles" : [ { "role" : "readWrite", "db" : "test" } ] } //the second user { "_id" : "test.guguji66", "user" : "guguji66", "db" : "test", "roles" : [ { "role" : "readWrite", "db" : "test" } ] }
参考上面的代码块,你为pipe理数据库创build了第一个用户(guguji55)。 和第二个用户(guguji66)作为testing数据库。 而你正试图将testing数据库连接到你不能的第一个用户。
让我解释一下确切的情况,你的用户发生了什么事情。 当你创build第一个用户guguji55
你是在数据库admin
。 所以用户创build与admin
数据库的链接。
//the firsr user { "_id" : "admin.guguji55", "user" : "guguji55", "db" : "admin", "roles" : [ { "role" : "readWrite", "db" : "test" } ] }
第二个用户是在test
数据库内创build的,所以它连接到testing数据库,这就是为什么你不能通过guguji55
访问testing数据库。
解决scheme:删除第一个用户guguji55
并重新创build它,而不用在任何数据库里面或在test
数据库里面。
有关更多参考,请参阅此链接