任何人都可以解释两个用户在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数据库里面。

有关更多参考,请参阅此链接

Interesting Posts