mogodb數據庫簡單的權限分配

mongdb數據庫默認不須要權限認證,但爲了安全起見,最好設置下須要權限認證,啓動的時候設置auth=true便可。mongodb

推薦經過mongodb.conf配置文件的形式啓動mongodb   進入mongodb bin目錄執行./mongod  -f   xxxx/mongodb.conf數據庫

dbpath=/home/dupeidong/data/db
logpath=/home/dupeidong/mongodb/log/mongodb.log
port=27017
fork=true
logappend=true
bind_ip=127.0.0.1 
auth=true  

設置了auth=true, 那麼第一次啓動mogodb數據的時候,訪問數據庫如show dbs,會提示沒有權限,須要添加一個超級管理員。而後切換到admin數據庫,再以超級管理員的身份登陸 ,執行 show dbs,能夠成功的查看到當前數據庫列表admin數據庫和local數據庫安全

db.createUser({user:'admin', pwd: '12345',roles: [{role: 'userAdminAnyDatabase', 'db': 'admin'}]})
use admin
db.auth('admin', '12345')
show dbs
  admin
  local

admin雖然是超級管理員,可是對具體的數據庫如article卻沒有操做權限,因此須要針對具體的數據庫添加相應的用戶管理員。爲某個數據庫添加用戶,應先切換到該數據庫,而後添加用戶。app

ps: 在執行use article以前要保證已經以超級管理員的身份登陸,才能成功給article添加用戶,超級管理員有添加用戶的權限spa

use article
db.createUser({user:'dpd',pwd:'dpd',roles:[{role:'readWrite',db:'article'}]})
db.createCollection("test")

 

最後若是沒有關閉數據庫的權限,須要經過下邊指令獲取受權code

use admin
db.auth('admin', '12345')
db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])
相關文章
相關標籤/搜索