mongodb許可權認證

2021-10-03 13:58:37 字數 1674 閱讀 9295

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方式,來識別和驗...