Database
MongoDB Auth,可以在 shell 中進行身份驗證,但不能通過命令行進行身份驗證
我有一個連接到稱為討論的 MongoDB 數據庫的應用程序。我創建了一個使用者
蒙哥殼:
> use discussions switched to db discussions > db.auth("discussions","XXXXXXXXX") 1 > show users { "_id" : "discussions.discussions", "user" : "discussions", "db" : "discussions", "roles" : [ { "role" : "dbOwner", "db" : "discussions" } ] }
這是為了確認我在數據庫上確實有一個帳戶,它是一個 dbOwner。根據文件,它具有讀取、寫入等權限。
配置文件啟用了屬性“auth = true”,並且自從更改後服務已多次被退回。
但是,問題是當我嘗試從 shell 外部連接到數據庫時,我總是會收到錯誤消息:
mongo discussions -u 'discussions' -p 'XXXXXXXXX' MongoDB shell version: 2.6.3 connecting to: discussion 2014-08-05T01:00:39.026+0400 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210 exception: login failed
我在 Stackoverflow 上看到過有關此問題的問題,它們都與使用者名和密碼周圍使用的引號有關……但是將單引號更改為雙引號並沒有產生更好的結果。
該問題已通過刪除任何符號得到解決。看來,儘管引用
$$ single or double $$會導致傳入的密碼無效。
也許我錯了,但正確的形式是這樣的:
mongo –port 27017 -u manager -p 12345678 –authenticationDatabase admin
您可以在 mongo 文件中閱讀相關內容:
http://docs.mongodb.org/manual/tutorial/add-user-to-database/