mongodb之使用者 認證 角色 許可權管理

2021-10-25 00:09:48 字數 3295 閱讀 7272

前言

使用者許可權管理很重要,只給需要的許可權,防止應用系統漏洞導致脫庫

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 ...