時間:2024-02-05 12:47作者:下載吧人氣:16
為了強制開啟用戶訪問控制(用戶驗證),則需要在MongoDB
實例啟動時使用選項--auth
或在指定啟動配置文件中添加auth=true
。
MongoDB
使用的是基于角色的訪問控制(Role-Based Access Control,RBAC)
來管理用戶對實例的訪問。通過對用戶授予一個或多個角色來控制用戶訪問數(shù)據(jù)庫資源的權(quán)限和數(shù)據(jù)庫操作的權(quán)限,在對用戶分配角色之前,用戶無法訪問實例。MongoDB
中通過角色對用戶授予相應數(shù)據(jù)庫資源的操作權(quán)限,每個角色當中的權(quán)限可以顯示指定,也可以通過集成其他角色的權(quán)限,或者兩者都存在的權(quán)限。在角色定義時可以包含一個或多個已存在的角色,新創(chuàng)建的角色會繼承包含的角色所有的權(quán)限。在同一個數(shù)據(jù)庫中,新創(chuàng)建角色可以繼承其他角色的權(quán)限,在admin
數(shù)據(jù)庫中創(chuàng)建的角色可以繼承在其它任意數(shù)據(jù)庫中的角色的權(quán)限。
角色權(quán)限的查看,可以通過如下的命令進行查看:
# 查詢所有角色權(quán)限(僅用戶自定義角色)
> db.runCommand({ rolesInfo: 1 })
# 查詢所有角色權(quán)限(包含內(nèi)置角色)
> db.runCommand({ rolesInfo: 1, showBuiltinRoles: true })
# 查詢當前數(shù)據(jù)庫中的某角色的權(quán)限
> db.runCommand({ rolesInfo: “<rolename>” })
# 查詢其它數(shù)據(jù)庫中指定的角色權(quán)限
> db.runCommand({ rolesInfo: { role: “<rolename>”, db: “<database>” } }
# 查詢多個角色權(quán)限
> db.runCommand({
rolesInfo: [
“<rolename>”, { role: “<rolename>”, db: “<database>” },
…
]
})
網(wǎng)友評論