1. 程式人生 > >MongoDB認證授權原理和常用操作

MongoDB認證授權原理和常用操作

上面連結講述的原理非常詳細

mongo版本:3.6

常用操作:

##檢視當前庫下所有使用者

show users

##檢視所有系統中使用者,儘量別直接修改此表

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

#增加使用者:

   db.createUser(

...     {

...       user: "1352",

...       pwd: "135137846",

...       roles: [

...          { role: "read", db: "test" }    

...       ]

...     }

... )

#刪除使用者:

db.dropUser("1354") #使用者名稱有問題的話先刪除在建立

##更新使用者  

db.updateUser( "1352",

               {

                 roles : [

                           { role : "readWrite", db : "test"},

   {"role" : "dbAdmin","db" : "test"}

                         ]

                }

             )

##更改密碼

db.changeUserPassword("使用者名稱

", "密碼")

##授予許可權

  db.grantRolesToUser("1352",[{ role : "userAdmin", db : "test"}])

##撤銷許可權

  db.revokeRolesFromUser("1352",[{ role : "userAdmin", db : "test"}])

##也可直接更新替換原有文件進行授權和撤銷許可權

  db.updateUser( "1352",

               {

                 roles : [

                           { role : "readWrite", db : "test"},

   {"role" : "dbAdmin","db" : "test"}

                         ]

                }

             )

##可用的內嵌角色(roles

Read:允許使用者讀取指定資料庫

readWrite:允許使用者讀寫指定資料庫

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

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

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

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

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

userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權

dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。

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