MongoDB啟用權限機制

目前使用的是mongodb 3.4版本,簡單的啟用權限機制的方式如下,其他較細緻的設定請看檢核表

1.先進入mongoDB建立帳號
於mongoDB中,切換到admin db於此建立所有DB的admin帳號

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)


userAdminAnyDatabase此role能管理mongodb中各db的權限,利用此帳號就可以新增其他帳號,並分配帳號管理不同db,另外只擁有這個role是不能查詢與異動其他db的喔
其他Role的資料請參考官網連結


2.建立好之後,離開mongo並已開啟auth的狀態重新啟用mongodb
命令列模式:
mongod --auth --port 27017 --dbpath /data/db1

也可透過conf檔設定,預設使用/etc/mongod.conf,開啟authorization的方式,於conf檔案中加上
security:
  authorization: enabled

security:表示安全相關設定
security.authorization: security的子項目,enabled表示啟動權限機制
注意conf檔案中的"authorization:"與"enabled"中間要有一個空格,否則會發生錯誤

編輯完成後,重新啟動mongodb,之後就需要使用帳號進行登入了

3.新增帳號
重啟後進入mongodb,發法有兩種,
3.1.利用參數進入
mongo -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
3.2.進入後再切換使用者
3.2.1進入mongo
mongo
3.2.2切換使用者
use admin
db.auth("myUserAdmin", "abc123" )

3.3新增其他使用者帳號
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

這樣就完成了基本的權限設定了

留言

這個網誌中的熱門文章

天雨粟、鬼夜哭、思念漫太古。

蘇打綠 - 御花園

Nodejs Base64 Url Safe