Database

MongoDB Auth,可以在 shell 中進行身份驗證,但不能通過命令行進行身份驗證

  • August 5, 2014

我有一個連接到稱為討論的 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/

引用自:https://serverfault.com/questions/617907