許可權概述 在mongodb裡面的用戶是屬於資料庫的,每個資料庫有自己的管理員,管理員登錄後,只能操作所屬的資料庫。 註意:一般在admin資料庫中創建的用戶授予超級管理員許可權,登錄後可以操作任何的資料庫。 創建超級管理員 註意:在開啟許可權管理控制時,一定先要創建一個超級管理員授予超級管理許可權。 (1 ...
許可權概述
在mongodb裡面的用戶是屬於資料庫的,每個資料庫有自己的管理員,管理員登錄後,只能操作所屬的資料庫。
註意:一般在admin資料庫中創建的用戶授予超級管理員許可權,登錄後可以操作任何的資料庫。
創建超級管理員
註意:在開啟許可權管理控制時,一定先要創建一個超級管理員授予超級管理許可權。
(1)創建超級管理員
登錄mongodb的客戶端,使用如下命令
use admin
db.createUser({user:'root',pwd:'123456',roles:[{role:'root',db:'admin'}]})
(2)修改MongoDB資料庫配置文件
修改mongodb.conf文件,將noauth改為auth
#noauth=true
auth=true
(3)重啟MongoDB服務
systemctl restart mongodb.service
(4)超級賬戶賬號連接資料庫
如果沒有輸入密碼,進入MongoDB的客戶端,進行操作,會報如下錯誤提示
本地連接:
mongo 資料庫名稱 -u 用戶名 -p 密碼
示例:mongo admin -u root -p 123456
遠程連接:
mongo IP地址:埠/資料庫名稱 -u 用戶名 -p 密碼
給某個庫創建普通管理員
我們以php庫為例
use php
db.createUser({user:"php",pwd:"123456",roles: [{role:"dbOwner",db:"php"}]})
登錄操作
許可權配置常用命令
(1)查看當前庫下的用戶
show users
(2)刪除用戶
db.dropUser("用戶名")
(3)修改用戶密碼
db.changeUserPassword('root','rootNew');
db.updateUser( "admin",{pwd:"password"});
(4)密碼認證
db.auth("用戶名","密碼")
前面我們是在mongo後面直接指定了用戶名和密碼,我們也可以在使用了mongo命令後再進行認證
MongoDB資料庫角色
(1)資料庫用戶角色:read、readWrite
(2)資料庫管理角色:dbadmin、dbOwner
、userAdmin
(3)集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
(4)備份恢復角色:backup、restore
(5)所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase
(6)超級用戶角色:root
推薦閱讀:MongoDB用戶驗證和許可權管理