2016-07-05 50 views
0

我正在設置一個Mongo測試分片,並希望使用Mongo用戶身份驗證。我已經將用戶添加到配置服務器上。我不確定是否需要在所有碎片上添加相同的用戶。我假設我不需要在查詢路由器(mongos)上添加用戶。但是,當我簡單地將用戶添加到配置服務器(通過Mongo shell)時,如果我留在shell中,我可以進行身份​​驗證。但是,只要我退出shell並重新登錄,我就無法使用相同的憑據重新登錄。碎片服務器確實有一個與它們相關的數據目錄,就像配置服務器一樣。有關如何進一步解決問題的任何想法?用mongo分片進行身份驗證

創建用戶

db.createUser({ user: "test", 
       pwd: "testPassword", 
       roles: [ { role: "clusterAdmin", db: "admin" }, 
          { role: "readAnyDatabase", db: "admin" }, 
          "readWrite"] }, 
       { w: "majority" , wtimeout: 5000 }) 

認證

db.auth("test", "testPassword") 

我沒有指定配置服務器的數據目錄(端口27019上運行,而不是27017 &數據目錄具有正確的mongo進程的權限)。

mongod --configsvr --dbpath /var/lib/mongodb3 --port 27019 

回答

0

一旦蒙戈集羣正確設置(查詢路由器連接到配置服務器與副本碎片將&配置serers /碎片寫入到磁盤),我可以簡單地通過查詢路由器添加用戶,並得到使用Mongo Java驅動程序進行身份驗證