2013-12-12 204 views
1

任何人都可以幫助我嗎?身份驗證MongoDB

我想驗證用戶在我的數據庫中,但我geting錯誤「auth失敗」。

我已經用--auth選項啓動了數據庫mongod,並在我的數據庫中創建了一個用戶。 但是,當我嘗試運行命令 - >"mongo 192.168.2.2/db_name -u user -p 123"它說"auth fails"

通過和用戶是一樣的。 用戶具有所有管理和羣集角色。 如果我嘗試記錄沒有管理員角色它說「未授權查詢admin.system.users」

運行命令db.auth("user","123")返回true給我。 我已經試圖添加用戶db.addUser("user","123")db.addUser({name: "user", pwd: "123", roles: ["dbAdmin", "userAdminAnyDatabase", "clusterAdmin"]})

任何提示?

+0

你嘗試'使用管理員?請參閱:http://docs.mongodb.org/manual/tutorial/add-user-administrator/ – Yaron

+0

是的,我總是輸入這個命令來使用管理數據庫,我已經做了89次mongo文檔中的所有步驟。 – Storm

+0

任何人都可以幫忙嗎? – Storm

回答

0

如果您的配置中沒有setParameter = enableLocalhostAuthBypass=0,請加入mongo shell而不登錄,當然,登錄admin db並在所有數據庫中添加用戶。

您可以使用此

首先在管理數據庫加入。

第一種方法

db.addUser({user: "test",pwd:"123", roles: [ "readWrite", "dbAdmin", "userAdminAnyDatabase", "clusterAdmin"], otherDBRoles:{otherdb1: [ "readWrite", "dbAdmin" ]}}) 

第二種方法

db.addUser("test","123") 
db.auth("test","123") 

,並在所有數據庫重複這一點。

差異:

第一種方法只有所有privilegies當你在管理DB直接洛,但如果你在其它洛分貝管理員用戶,不會工作,因爲你有這個用戶管理數據庫,沒有在別人分貝。

第二種方法,如果您在任何數據庫中登錄,則您在所有數據庫中都具有所有角色。

+0

嗨,謝謝你的回覆,我只是試圖連接/使這個exmaples你給我。什麼都沒有 看到我對我的帖子的最新評論。 謝謝! – Storm