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" } ]
}
)
這樣就完成了基本的權限設定了
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" } ]
}
)
這樣就完成了基本的權限設定了
留言