mongodb的權限基本操作

一、權限列表


Read:允許用戶讀取指定數據庫
readWrite :允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限

二、認證機制:

MONGODB-CR    SCRAM-SHA-1
默認認證方式:SCRAM-SHA-1

三、創建

1、首先啓動服務以主服務器方式啓動

mongod -master --auth --port 27017 --dbpath D:\software\MongoDB\mongo

//創建超級管理員,操作其他users
db.createUser(
  {
    user: "root",
    pwd: "root",
    roles: [ { role: "root", db: "admin" } ]
  }
)

2、然後以主服務器方式啓動、帶訪問控制的 Mongodb

用戶認證:root用戶纔可以賦予其他用戶權限

use admin;

db.auth("root","root")

 

例如:需要一個所有庫的read權限,用戶adminUser/adminPass

use admin;

db.createUser(
  {
    user: "adminUser",
    pwd: "adminPass",
    roles: [ { role: "readAnyDatabase", db: "admin" }
    ]
  }
)

更新adminUser用戶權限,添加了local庫的read權限
db.updateUser( "adminUser",
    {
     roles: [ { role: "readAnyDatabase", db: "admin" },
                {role:"read",db:"local"}       
        ]
    }
)

四、測試

 

直接使用admin庫進行驗證

 

use admin;

db.auth("adminUser","adminPass");

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章