我有幾個數據庫,並且不想爲每個數據庫創建單獨的用戶帳戶。 MongoDB支持使用另一個數據庫中定義的帳戶對數據庫的訪問進行身份驗證的概念,但語法的示例很難實現。MongoDB和Mongoose在對另一個數據庫進行身份驗證時(NodeJS,Mongoose)訪問一個數據庫
當我終於想出來的時候,我正在發佈一個問題的邊緣。在這裏可以幫助其他人
我有幾個數據庫,並且不想爲每個數據庫創建單獨的用戶帳戶。 MongoDB支持使用另一個數據庫中定義的帳戶對數據庫的訪問進行身份驗證的概念,但語法的示例很難實現。MongoDB和Mongoose在對另一個數據庫進行身份驗證時(NodeJS,Mongoose)訪問一個數據庫
當我終於想出來的時候,我正在發佈一個問題的邊緣。在這裏可以幫助其他人
下面是mongodb,mongoose,節點設置的語法。
從蒙戈外殼創建在管理數據庫的數據庫用戶
use admin
db.addUser({ user: "mydbuser", pwd: "mypassword", roles: [ ] })
創建數據庫和添加用戶 - 的userSource表示 憑據在管理數據庫中定義
use mydb
db.addUser({ user: "mydbuser", userSource: "admin" , roles: [ "readWrite" , "dbAdmin"] })
指定貓鼬連接字符串
var myDB = mongoose.createConnection("mongodb://mydbuser:[email protected]:27017/mydb" ,{auth:{authdb:"admin"}});
選項{AUTH:...}在auth參數是什麼指定的用戶帳戶必須對管理數據庫進行身份驗證。
同樣連接到數據庫從蒙戈外殼
mongo myipaddr:27017/mydb -u "mydbuser" -p "mypassword"
注:用戶 「mydbuser」 以前只讀/寫和管理員訪問MYDB。你可以找到關於用戶權限here的更多信息。該場景的一個更全面的示例是here
userSource字段已從v2.6的createUser方法中刪除。你能引導我到相當於post的createUser方法嗎? – wdphd
在mongo的最新版本中,此信息不再正確。 – ccnokes