溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mongodb用戶權(quán)限

發(fā)布時(shí)間:2020-08-06 22:02:18 來(lái)源:ITPUB博客 閱讀:164 作者:風(fēng)陵渡口_ 欄目:關(guān)系型數(shù)據(jù)庫(kù)
mongodb 開(kāi)啟用戶認(rèn)證:
mongodb開(kāi)啟用戶認(rèn)證之后,要通過(guò)用戶名密碼的方式登錄
現(xiàn)在需要?jiǎng)?chuàng)建一個(gè)帳號(hào),該賬號(hào)需要有g(shù)rant權(quán)限,即:賬號(hào)管理的授權(quán)權(quán)限。注意一點(diǎn),帳號(hào)是跟著庫(kù)走的,所以在指定庫(kù)里授權(quán),必須也在指定庫(kù)里驗(yàn)證(auth)。
use admin
switched to db admin
> db.createUser(
...   {
...     user: "dba11",
...     pwd: "dba11",
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
...   }
... )
roles:指定用戶的角色,可以用一個(gè)空數(shù)組給新用戶設(shè)定空角色;在roles字段,可以指定內(nèi)置角色和用戶定義的角色。role里的角色可以選:


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



Read:允許用戶讀取指定數(shù)據(jù)庫(kù)
readWrite:允許用戶讀寫(xiě)指定數(shù)據(jù)庫(kù)
dbAdmin:允許用戶在指定數(shù)據(jù)庫(kù)中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計(jì)或訪問(wèn)system.profile
userAdmin:允許用戶向system.users集合寫(xiě)入,可以找指定數(shù)據(jù)庫(kù)里創(chuàng)建、刪除和管理用戶
clusterAdmin:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。
readAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀權(quán)限
readWriteAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的讀寫(xiě)權(quán)限
userAdminAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的userAdmin權(quán)限:userAdminAnyDatabase 角色,用來(lái)管理用戶,可以通過(guò)這個(gè)角色來(lái)創(chuàng)建、刪除用戶。驗(yàn)證:需要開(kāi)啟auth參數(shù)。
dbAdminAnyDatabase:只在admin數(shù)據(jù)庫(kù)中可用,賦予用戶所有數(shù)據(jù)庫(kù)的dbAdmin權(quán)限。
root:只在admin數(shù)據(jù)庫(kù)中可用。超級(jí)賬號(hào),超級(jí)權(quán)限
----------------------------------
show users;   查看當(dāng)前庫(kù)下的用戶


因?yàn)閹ぬ?hào)都是在當(dāng)前需要授權(quán)的數(shù)據(jù)庫(kù)下授權(quán)的,那要是不在當(dāng)前數(shù)據(jù)庫(kù)下會(huì)怎么樣?




> db
admin
> db.createUser(
...  {
...    user: "wbx",
...    pwd: "wbx",
...    roles: [
...       { role: "readWrite", db: "sss" },     #在當(dāng)前庫(kù)下創(chuàng)建其他庫(kù)的帳號(hào),在admin庫(kù)下創(chuàng)建test、abc庫(kù)的帳號(hào)
...       { role: "readWrite", db: "sssss" }         
...    ]
...  }
... )


> show users;


創(chuàng)建了這么多帳號(hào),怎么查看所有帳號(hào)?
db.system.users.find().pretty()



**********************************************************************************
造數(shù)測(cè)試:
for (var i = 1; i <= 100000; i++) {


  db.db01.insert( { x : i , name: "MACLEAN" , sex:"女", name2:"maira", name3:"MACLEAN"} )


}

use db01

db.data.find({x:{$gt:40}}).explain();
















向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI