MONGODB使用者 角色和許可權管理

2021-07-10 16:53:10 字數 2026 閱讀 2825

最近遇到很多問mongodb使用者認證授權方面的問題,現在特記錄下來,與大家共享。

一、概念理解

1、使用者概念

mongodb的使用者是由 使用者名稱+所屬庫名組成

例如:登入mongo  testdb1 ,建立使用者testuser

登入mongo  testdb2 ,建立使用者testuser

那上面建立的使用者分別是:testuser@testdb1,testuser@testdb2

也就是說在哪個庫下面建立使用者,這個使用者就是哪個庫的

2、角色概念

mongodb的授權採用了角色授權的方法,每個角色包括一組許可權。

mongodb已經定義好了的角色叫內建角色,我們也可以自定義角色。

這兒主要介紹內建角色,mongodb內建角色包括下面幾類:

讀寫許可權:                read/readwrite 讀寫庫的許可權

資料庫管理角色:    dbadmin  某資料庫管理許可權

useradmin  某資料庫使用者的管理許可權,包括建立使用者,授權的管理

dbowner     某資料庫的所有者,擁有該庫的所有許可權,包括readwrite,dbadmin和useradmin許可權

集群許可權   :

備份和恢復角色:    bakcup  restore

所有資料庫角色:    readanydatabase

readwriteanydatabase

dbadminanydatabase

useradminanydatabase

超級使用者角色:        root

內部角色        :        __system  不建議使用

二、搭建認證環境和認證登入

1、找到mongodb配置檔案,設定noauth=true

重啟mongodb後,登入admin賬號,建立乙個超級許可權使用者

use admin

db.createuser(]});

2、關閉mongodb

3、啟用認證引數

要保證許可權認證生效,需要在mongodb配置檔案中加入auth=true,同時取消掉noauth=true

4、啟動mongodb

5、認證登入

> use admin

switched to db admin

> db.auth('root','root')

1> use hong

switched to db hong

> show collections;

liujing

system.users

> db.liujing.find();

三、使用者授權詳解

1、建立使用者並授權

語法:db.createuser(]})

首先選擇在哪個庫建立使用者,如test:use test;

建立使用者有3項需要提供:使用者名稱,密碼,角色列表

例如我要在test下面建立用testuser,密碼為testpwd,角色列表包括test庫的readwrite角色和useradmin角色:

db.createuser(,]})

2、修改密碼

首先進入目標庫:use test

db.changeuserpassword('testuser','testpwd');

3、新增角色

首先進入目標庫:use test

db.grantrolestouser(  "testuser",  [      ] )

4、**角色許可權

首先進入目標庫:use test

db.revokerolesfromuser("testuser",[      ] )

5、刪除使用者

首先進入目標庫:use test

db.dropuser("testuser")

四、注意事項

1、mongodbvoe版本太低,可能導致遠端連線mongodb認證失敗,建議公升級版本或者更換其它gui工具

2、遠端連線mongodb一定要把mongodb伺服器的防火牆開啟,否則連線不上

MongoDB使用者的角色許可權

1 當前庫普通操作角色 read 查詢本庫的許可權 readwrite 增刪改查本庫的許可權 2 當前庫管理員操作角色 dbadmin 資料庫物件的管理操作,但沒有資料庫的讀寫許可權 useradmin 在本庫下建立使用者的許可權 dbowner 本庫所有操作的許可權 3 例項級別操作角色 read...

使用者 角色和許可權

我感覺,雖然很多人都可以做出乙個成員資格管理的模組,但是能做的好的並不是很多。其中,有對這個成員管理原理不清楚的,也有實現能力不強的,等等。我覺得,要想做好成員資格管理,首先必須對成員資格管理的概念和原理有較為深刻的認識。然後,有個好的設計和實現。所以,我將在下面和大家一起討論一下成員資格管理的概念...

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

前言 使用者許可權管理很重要,只給需要的許可權,防止應用系統漏洞導致脫庫 authentication 認證識別,解決我是誰 authorization 操作授權,我能做什麼 mongodb cr 官方自定義實現認證機制,通過使用者名稱和密碼,通過challenge response方式,來識別和驗...