關於MongoDB設定權限
大家在使用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 > 最高權限
以上~~收工嘍!