MongoDB 3 0 安全許可權訪問控制

2021-08-20 23:08:02 字數 3134 閱讀 3819

1、啟動沒有訪問控制的mongodb服務

sudo service mongod start

2、連線到例項

mongo --port 27017

指定額外的命令列選項來連線mongo shell到部署mongodb伺服器, 如--host

3、建立的使用者管理員

use admin

db.createuser( ]}

)4、重新啟動mongodb例項,並啟用訪問控制

1、重新啟動mongod例項,如果使用配置檔案的設定,security.authorization:

vi /etc/mongod.conf

修改內容:

security:

authorization: enabled

2、注意:keys and values之間一定要加空格, 否則解析會報錯

重啟服務:

sudo service mongod start

5、使用者管理員身份驗證

1、建立連線mongo shell 時進行授權,指定-u , -p , and the --authenticationdatabase

mongo --port 27017 -u "myuseradmin" -p "abc123" --authenticationdatabase "admin"

2、mongo shell連線時不認證,使用db.auth()授權

use admin

db.auth("myuseradmin", "abc123" )

--------------------伺服器以開啟認證後,如何新增使用者--------------------

1、啟動mongodb例項的訪問控制

啟動mongod例項 auth命令列選項,如果使用配置檔案的設定,security.authorization。

sudo service mongod start

2、通過localhost exception 連線mongodb例項

新增第乙個使用者, 使用localhost exception,連線乙個mongod例項。執行mongo shell和mongod例項必須來自同一主機

3、同上建立使用者方式相同

--------------------普通使用者安全訪問許可權--------------------

1、啟動mongodb

service mongod start

2、再次開啟mongodb shell

1、mongo --port 27017 -u "myuseradmin" -p "abc123" --authenticationdatabase "admin"

2、mongo

use admin

db.auth("myuseradmin","abc123")

3、show collections:報錯

因為使用者myuseradmin只用使用者的管理許可權

3、建立使用者,使用者都跟著資料庫走

為myuseradmin建立使用者myuseradmin在admin 資料庫

use admin

db.createuser( ]}

)4、檢視剛剛建立的使用者

show users

5、檢視整個mongodb全部的使用者

use admin 

db.system.users.find() 

> db.system.users.find().pretty()

6、建立完畢、進行驗證

> use test

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

1> show collections

ypmlist

--------------------修改許可權--------------------

1、updateuser()方法:

1、例項

db.updateuser(

"",,

roles : [

| "",

...],

pwd: ""

},writeconcern:

)2、引數介紹:   

1、username:要更新的使用者名稱。

2、update:替換使用者資料的文件,此資料完全取代了使用者的相應資料。

3、writeconcern:可選,寫操作級別。

3、指定要更新的字段和他們的新值:

1、customdata:可選。任意資訊。

2、roles:可選。授予使用者的角色。對角色陣列覆蓋以前的陣列的值更新

3、pwd:可選。使用者密碼

--------------------修改許可權操作--------------------

例項:> use admin

switched to db admin

> db.auth("myuseradmin", "abc123" )

1use test

db.updateuser(

"test1",

,"roles" : [,}

)--------------------超級使用者--------------------

use admin

db.createuser( ]}

)2、系統預設角色:

1、read:允許使用者讀取指定資料庫

2、readwrite:允許使用者讀寫指定資料庫

3、dbadmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile

4、useradmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者

5、clusteradmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。

6、readanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權

7、readwriteanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權

8、useradminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的useradmin許可權

9、dbadminanydatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbadmin許可權。

10、root:只在admin資料庫中可用。超級賬號,超級許可權

mongoDB 3 0 安全許可權訪問

mongodb 3.0 訪問控制改了很多,需要你老老實實的去看文件去驗證,谷歌出來的多半就是錯誤的。還需要注意這個引數authenticationmechanisms。為了兼用2.6版本,我直接指定下面的引數 setparameter authenticationmechanisms mongodb...

mongoDB 3 0 安全許可權訪問控制

首先,不使用 auth 引數,啟動 mongodb mongodb linux i686 3.0.0 bin mongod f mongodb linux i686 3.0.0 mongodb.conf 此時你 show dbs 會看到只有乙個local資料庫,那個所謂的admin是不存在的。mon...

mongoDB 3 0 安全許可權訪問控制

首先,不使用 auth 引數,啟動 mongodb mongodb linux i686 3.0.0 bin mongod f mongodb linux i686 3.0.0 mongodb.conf 此時你 show dbs 會看到只有乙個local資料庫,那個所謂的admin是不存在的。mon...