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" } ])