前言
使用者許可權管理很重要,只給需要的許可權,防止應用系統漏洞導致脫庫
authentication
認證識別,解決我是誰
authorization
操作授權,我能做什麼
mongodb-cr
官方自定義實現認證機制,通過使用者名稱和密碼,通過challenge-response方式,來識別和驗證授權。scram-sha-1認證機制有更好的安全性,新版本預設使用scram-sha-1。不建議使用mongodb-cr模式。
scram-sha-1
3.0版本新加功能,mongodb預設的認證模式,通過使用者名稱和密碼認證,ietf標準:rfc 5802
x.509證書
2.6版本新加功能,公鑰證書結構標準,由國際電信聯盟(itu)定義。認證授權時需要通過tls/ssl加密連線,也就是說mongodb服務需要支援加密協議訪問。配置非常麻煩,建議不使用》_<
判斷流程,根據公開資料猜測
ldap
僅企業版支援
kerberos
僅企業版支援
新增使用者
通過mongo shell終端操作,使用者儲存在admin資料庫system.user集合中
新增普通使用者
切換到需要新增使用者的db
use ***x
執行新增
db.createuser(,]
})
新增超級使用者
切換到admin資料庫
use admin
執行新增
db.createuser(]}
)
刪除使用者
切換到使用者授權的db
use xx
執行刪除操作
db.dropuser("username")
更新使用者
切換到使用者授權的db
use xx
執行更新
欄位會覆蓋原來的內容
db.updateuser("username",
})
更新使用者密碼
use xx
db.changeuserpassword("username","newpassword")
檢視使用者資訊
use admin
db.getuser("username")
刪除使用者角色
use xx
db.revokerolesfromuser(
"usename",[]
)
新增使用者角色
use xx
db.grantrolestouser(
"reportsuser",[]
)
自定義角色
自定義角色儲存在admin資料庫system.roles集合中
切換到admin資料庫
use admin
執行新增
db.createrole(
, actions: [ "killop", "inprog" ] },
, actions: [ "killcursors" ] }
],roles:
})
檢視角色資訊
use admin
db.getrole("rolename",)
刪除角色
use admin
db.droprole("rolename")
系統內建使用者角色
大部分內建的角色對所有資料庫共用,少部分僅對admin生效
資料庫使用者類
read
非系統集合有查詢許可權
readwrite
非系統集合有查詢和修改許可權
資料庫管理類
dbadmin
資料庫管理相關,比如索引管理,schema管理,統計收集等,不包括使用者和角色管理
dbowner
提供資料庫管理,讀寫許可權,使用者和角色管理相關功能
useradmin
提供資料庫使用者和角色管理相關功能
集群管理類
clusteradmin
提供最大集群管理許可權
clustermanager
提供集群管理和監控許可權
clustermonitor
提供對監控工具唯讀許可權
hostmanager
提供監控和管理severs許可權
備份和恢復類
backup
提供資料庫備份許可權
restore
提供資料恢復許可權
all-database類
readanydatabase
提供讀取所有資料庫的許可權除了local和config資料庫之外
readwriteanydatabase
和readanydatabase一樣,除了增加了寫許可權
useradminanydatabase
管理使用者所有資料庫許可權,單個資料庫許可權和useradmin角色一樣
dbadminanydatabase
提供所有使用者管理許可權,除了local,config
超級使用者類
root
資料庫所有許可權
內部角色
__system
提供資料庫所有物件任何操作的許可權,不能分配給使用者,非常危險
參考資料
認證識別
openssl 證書操作命令
維基百科x.509介紹
mongodb - security-x.509
use x.509 certificates to authenticate clients
enterprise authentication mechanisms - ldap and kerberos
mongodb新增使用者
更改mongodb使用者密碼和自定義資料
mongodb陣列
管理mongodb使用者和角色
security-users
internal authentication
built-in roles
reference:built-in-roles and built-in-actions
scram-sha1認證方式介紹
5 7 使用者 角色認證
本小節我們實現乙個功能,當使用者插入,修改或者刪除資料時,判斷該操作是否具備應有的許可權。如果許可權不符合就拒絕操作同時提示使用者。create table staff id int 10 unsigned not null auto increment comment 員工id name varc...
mongodb的使用者認證
mongodb預設是不認證的,預設沒有賬號,只要能連線上服務就可以對資料庫進行各種操作,mongodb認為安全最好的方法就是在乙個可信的環境中執行它,保證之後可信的機器才能訪問它,可能這些對一些要求高的環境,安全還不夠 mongodb提供使用者認證,需要在啟動時加上 auth開啟認證 認證前需要新增...
mongodb 3 0 使用者角色
詳情來自於官方 mongodb 3.0 安全許可權訪問控制,在新增使用者上面3.0版本和之前的版本有很大的區別,這裡就說明下3.0的新增使用者的方法。環境 測試 在安裝mongodb之後,先關閉auth認證,進入檢視資料庫,只有乙個local庫,admin庫是不存在的 root zhoujinyi ...