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資料庫中可用。超級賬號,超級許可權