Mongodb設(shè)置用戶權(quán)限

參考:https://www.cnblogs.com/swordfall/p/10841418.html
說明:操作前可以把mongo配置的認(rèn)證關(guān)閉,重啟,配置完成后在啟用認(rèn)證配置,啟動(dòng)mongo

一.進(jìn)入mong安裝的bin目錄下,創(chuàng)建一個(gè)有g(shù)rant權(quán)限的用戶,如root權(quán)限的用戶

./mongo
use admin
db.createUser({user:"admin",pwd:"123456",roles:["root"]})

校驗(yàn)(打印1表示成功)

db.auth('admin','123456')

user:用戶名
pwd:密碼
db:指定該用戶的數(shù)據(jù)庫,admin是用于權(quán)限控制的數(shù)據(jù)庫,如果沒有需要新建一個(gè)
roles:指定用戶的角色,可以用一個(gè)空數(shù)組給新用戶設(shè)定空角色;在roles字段,可以指定內(nèi)置角色和用戶定義的角色。role里的角色可以選:

Built-In Roles(內(nèi)置角色):

1. 數(shù)據(jù)庫用戶角色:read、readWrite;
2. 數(shù)據(jù)庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復(fù)角色:backup、restore;
5. 所有數(shù)據(jù)庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root  
// 這里還有幾個(gè)角色間接或直接提供了系統(tǒng)超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內(nèi)部角色:__system

具體角色的功能:

readWrite:允許用戶讀寫指定數(shù)據(jù)庫
dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計(jì)或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶
clusterAdmin:只在admin數(shù)據(jù)庫中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。
readAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限
readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限
userAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限
dbAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限。
root:只在admin數(shù)據(jù)庫中可用。超級賬號,超級權(quán)限

二.創(chuàng)建所有數(shù)據(jù)庫管理用戶

db.createUser({ user: "all", pwd: "all", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

三.創(chuàng)建單個(gè)數(shù)據(jù)庫用戶及權(quán)限修改/刪除

3.1.創(chuàng)建
use test
db.createUser({user: "admin", pwd: "123456", roles: [{ role: "readWrite", db: "test" }]})
3.1.1查看show users
{
    "_id" : "test.admin",
    "user" : "admin",
    "db" : "test",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}
3.2 修改(追加權(quán)限)
db.grantRolesToUser("admin",[{ role: "dbAdmin", db: "test"}])
3.2.1查看show users
{
    "_id" : "test.admin",
    "user" : "admin",
    "db" : "test",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "test"
        },
        {
            "role" : "dbAdmin",
            "db" : "test"
        }
    ]
}

3.3 修改(替換權(quán)限)
db.updateUser("admin",[{ role: "read", db: "test"}])
3.3.1查看show users
{
    "_id" : "test.admin",
    "user" : "admin",
    "db" : "test",
    "roles" : [
        {
            "role" : "read",
            "db" : "test"
        }
    ]
}

3.4刪除權(quán)限
db.revokeRolesFromUser("admin",[{ role: "readWrite", db: "test"}])
3.5修改用戶密碼
db.changeUserPassword('admin','66666'); 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容