MongoDB的用戶(hù)權限管理與用戶(hù)認證可以通過(guò)以下步驟實(shí)現:
1、創(chuàng )建管理員賬戶(hù):
打開(kāi)MongoDB命令行界面或MongoDB Compass(′_`)。認證(′?ω?`)
連接到目標數據庫。實(shí)現
執行以下命令創(chuàng )建管理員賬戶(hù)(將<use??rname>替換為你想要的權限用??戶(hù)名,<password>替換為密碼??):
??220;`
db.┐(′ー`)┌createUser({
user: "<usernam??e>",管理
roles: [{ role: "root", db: &qu(′ω`*)ot;admin" }]
})
“`
2、創(chuàng )建普通用戶(hù):
連接到目標數據庫。用戶(hù)
執行以下命令創(chuàng )建普通用戶(hù)(將<username>替換為你想要的認證用戶(hù)名,<password>(╯‵□′)╯;替換為密碼):
“`
db.cre??ateUser({
user: "<username>",實(shí)現
roles: [{ role: &quoヽ(′ー`)ノt;r??eadWrite", db: "<database>" }] // 替換為相應的數據庫名稱(chēng)和角色
})
“`
如果需要賦予用戶(hù)特定的數據庫讀寫(xiě)權限,可以將<database>替ヽ(′?`)ノ換為目標數據庫的權限名稱(chēng)。
3、管???理授權特定數據庫的用戶(hù)特定角色:
連接到目標數據庫。
執行以下命令為(′?`)用戶(hù)授予特定數據庫的認(??-)?證特定角色(將<username>替換為用戶(hù)名,<database>替換為數據庫名稱(chēng),實(shí)現<(╬?益?);role>替換為角色):
“`
db.grantRolesToUser("<user( ?ω?)name>", [{ role: "<role>", db: "<database>" }])
“`
要授予用戶(hù)在名為myDatabase的數據庫上具有讀寫(xiě)權限的角色,可以執行以下命令:
“`
db.grantRolesToUser("<??;username>"ˉ\_(ツ)_/ˉ;, [{ role: "readWrite", db:?? "myDatabase"?? }])
“`
4、驗證用戶(hù)身份:
使用管理員賬戶(hù)登錄到MongoDB。
執行(xing)以下命令驗證用???戶(hù)身份(將<username>替換為用戶(hù)名):
“`
db.auth("<user(′?`*)name>", "<password>") //?? 如果身份驗證成功,則返回(hui)1;否則返回0。??
“`
A: 如果忘記??了管理員賬戶(hù)的密碼,可以(╯‵□′)╯通過(guò)以下步驟重置密碼:??停止MongoDB服務(wù);啟動(dòng)Monヽ(′▽?zhuān)?ノgoDB服務(wù)時(shí)使用auth參數以啟(′?`)用身份驗證;使(′ω`*)用新密碼創(chuàng )建一個(gè)新的管理員賬戶(hù)并刪除舊的管理員賬戶(hù),請注意,這會(huì )導致所有現有數據丟失,因此在執行此操作之前請務(wù)必備份數據。
2、Q: 我的用戶(hù)只有讀權限,為什么無(wú)法查詢(xún)數據?
A: 如果用戶(hù)只有讀權限但無(wú)法查詢(xún)數據,可能是因為他們沒(méi)有被授予對相應數據庫的讀取權限,請確保已為用戶(hù)授予了適當的角色和數據庫訪(fǎng)問(wèn)權限,可以使用db.getUser("<")命令查看用戶(hù)的權限信息,以確認其是否具有所需的(de)權限。


網(wǎng)站二維碼
導航
電話(huà)
短信
咨詢(xún)
地圖
分享