1.拉取mongo映象
docker pull mongo
2.執行mongo容器
docker run --privileged=true -p 27017:27017 -v /home/mongo/27017/db:/data/db -v /home/mongo/conf:/data/configdb --name mongo -d mongo --auth
/home/mongo/27017/db: 資料持久化儲存路徑
--auth開啟許可權認證
注:當mongo啟用auth選項時,使用者需要建立資料庫帳號,訪問時根據帳號資訊來鑑權,而資料庫帳號資訊就儲存在admin資料庫下
3.進入容器
docker exec -it mongo bash
4.設定許可權
1)登入
mongo admin
2) 切換到admin資料庫
use admin
3) 建立超級使用者
db.createuser(]})
4) 建立管理員使用者
a) 退出
exit
b) 使用root使用者登入
mongo -uroot -proot
c) 切換到admin資料庫
use admin
d) 建立管理員使用者
db.createuser(]})
5) 建立資料庫許可權使用者
use test
db.createuser(]})
注:mongodb 目前內建了 7 個角色。
資料庫使用者角色:read、readwrite;
資料庫管理角色:dbadmin、dbowner、useradmin;
集群管理角色:clusteradmin、clustermanager、clustermonitor、hostmanager;
備份恢復角色:backup、restore;
所有資料庫角色:readanydatabase、readwriteanydatabase、useradminanydatabase、dbadminanydatabase;
超級使用者角色:root;
內部角色:__system
這些角色對應的作用如下:
read:允許使用者讀取指定資料庫
readwrite:允許使用者讀寫指定資料庫
dbadmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile
useradmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者
clusteradmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。
readanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權
readwriteanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權
useradminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的useradmin許可權
dbadminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbadmin許可權。
root:只在admin資料庫中可用。超級賬號,超級許可權
如果覺得使用命令操作麻煩,建議使用studio 3t客戶端工具操作,很方便,而且還支援sql語法查詢資料。
MongoDB許可權認證
在開啟mongodb 服務時不新增任何引數時,可以對資料庫任意操作,而且可以遠端訪問資料庫。如果啟動的時候指定 auth引數,可以對資料庫進行使用者驗證 在freebsd 系統中 mongodb 增加認證的選項有兩種辦法 方法一直接修改啟動指令碼在 usr local etc rc.d mongod...
MongoDB的使用者 認證和許可權
開啟mongodb服務時不新增任何引數時,預設是沒有許可權驗證的,登入的使用者可以對資料庫任意操作而且可以遠端訪問資料庫!在剛安裝完畢的時候mongodb都預設有乙個admin資料庫,此時admin資料庫是空的,沒有記錄許可權相關的資訊!當admin.system.users乙個使用者都沒有時,即使...
mongodb之使用者 認證 角色 許可權管理
前言 使用者許可權管理很重要,只給需要的許可權,防止應用系統漏洞導致脫庫 authentication 認證識別,解決我是誰 authorization 操作授權,我能做什麼 mongodb cr 官方自定義實現認證機制,通過使用者名稱和密碼,通過challenge response方式,來識別和驗...