我看到了很多的教程展示瞭如何在MongoDB中使用Java的Java/MongoDB的認證
權威性的,我有我的MongoDB與身份驗證設置啓用。 在控制檯我用
使用管理
db.auth( 「MYUSER」, 「新密碼」),並運行良好。
,並在Java在每一個訪問的網站的代碼是
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("myBase");
boolean auth = db.authenticate("myUser", "newPassword".toCharArray());
//auth is true if everithing went well
的大問題是,代碼不爲我工作,我不知道爲什麼。我測試顯式更改爲管理數據庫。
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("admin");
boolean auth = db.authenticate("myUser", "newPassword".toCharArray());
DB db = mongo.getDB("myBase");
//auth is true if everithing went well
這工作,但對我來說這不是一個解決方案,因爲我triying使用蒙戈與騾子,問題是,我不能分貝的之間改變每個權威性,我必須做的。
爲什麼第一個代碼適用於所有人而不是我?
我意識到了什麼問題。
似乎mongo使用用戶存儲在數據庫本身的每個數據庫。我在同一個數據庫中創建了用戶,它工作。這是一個非常奇怪的功能,因爲我會在mongo中有很多重複的用戶,每個用戶都有一個用戶。減去用於在Mongo中管理的用戶...
我要提到的可能性,所以我很高興你找到它。 2.6正在重新授權,所以看看即將發生的變化可能不會有什麼影響。 – evanchooly