關於MongoDB設定權限
May 31, 2016
1 minute read

大家在使用MongoDB,裝完預設其實是沒設定權限的
因為MongoDB預設你不會對外開放
一般是會鎖定只給api的機器讀取資料
但…有資料庫就一定會有權限
所以遇上要使用帳號密碼登入時要怎辦
這邊安迪兒記錄一下使用的方式
大至分為幾個步驟
1、設定一個管權限的使用者
2、設定要開放MongoDB的使用者 3、關掉MongoDB,改換用權限啟動的參數,重新啟動MongoDB

1.首先登入MongoDB

mongo  
use admin ;
db.createUser(
{
user: "xx",
pwd: "xx",
roles: [ { role: "userAdminAnyDatabase", db: "metadata" } ]
}
);
show users;

2.再來設定一下要開放帳號密碼的metadata db

use metadata;
{
user: "xx",
pwd: "xx",
roles: [ { role: "dbOwner", db: "metadata" } ]
};
show users;

弄完了就下exit離開MongoDB的shell吧
查一下mongo的process
然後kill它

ps aux | grep mongo
sudo kill xxx

3.最後重啟一下MongoDB,帶上權限的參數,完成嘍 !

mongod --auth

試一下帳號是否可登入

mongo --port 27017 -u "xx" -p "xx" --authenticationDatabase "admin"

另外記錄一下admin資料庫的其它特殊權限

readAnyDatabase > 讀取所有資料庫
readWriteAnyDatabase > 讀寫所有資料庫
userAdminAnyDatabase > 管理所有資料庫使用者
dbAdminAnyDatabase > 所有資料庫的管理者
root > 最高權限

以上~~收工嘍!


Back to posts


comments powered by Disqus