本地連接服務器的mongodb


 

首先說中心思想,和連接本地數據庫是一樣的,不同的是修改數據庫的配置項:

module.exports = {
    dbs:'mongodb://賬號:密碼@服務器ip27017/數據庫名稱'
}

但是總是提示權限不足。

即在要操作的數據庫 dbs下創建用戶的讀寫權限,例如:

use dbs
db.createUser({
    user:'root',
    pwd:'root',
    roles:[
        {role:'readWrite',db:'dbs'}
    ]
})

每個數據庫,都要設置用戶的訪問權限,只有設置了權限,才能對數據庫進行操作!

 

 

 

 

詳見這篇文章:http://www.ttlsa.com/mongodb/mongodb-3-0-security-permissions-access-control/

mongoDB 3.0 訪問控制改了很多,需要你老老實實的去看文檔去驗證,谷歌百度出來的多半就是錯誤的。 還需要注意這個參數authenticationMechanisms。

為了兼用2.6版本,我直接指定下面的參數:

下面看看如何創建訪問控制權限

不使用 —auth 參數,啟動 mongoDB

此時你 show dbs 會看到只有一個local數據庫,那個所謂的admin是不存在的。

mongoDB 沒有超級無敵用戶root,只有能管理用戶的用戶 userAdminAnyDatabase

添加管理用戶

 

roles 中的 db 參數是必須的,不然會報錯:Error: couldn’t add user: Missing expected field “db”。另外,有很多文章記錄的是使用 db.addUser(…) 方法,這個方法是舊版的,3.0中已經不存在,詳見:http://docs.mongodb.org/manual/reference/method/js-user-management。

切換到admin下,查看剛才創建的用戶:

怎么關閉 mongoDB?千萬不要 kill -9 pid,可以 kill -2 pid 或 db.shutdownServer()

下面使用 —auth 參 數,重新啟動 mongoDB:

此時 show collections 報錯

因為,用戶buru只有用戶管理的權限。

下面創建用戶,用戶都跟着庫走,創建的用戶都是

查看剛剛創建的用戶。

查看整個mongoDB全部的用戶:

創建完畢,驗證一下:

顯然沒權限,先auth:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM