a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 數(shù)據(jù)庫(kù) > MongoDB > 正文

MongoDB內(nèi)建角色包括哪些??jī)?yōu)點(diǎn)是什么?

2024-09-07 00:22:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
       MongoDB內(nèi)建角色包括哪些?特點(diǎn)是什么?剛接觸MongoDB的朋友可能對(duì)于MongoDB內(nèi)建角色不太了解,對(duì)此這篇文章就主要給大家介紹一下MongoDB內(nèi)建角色,感興趣的朋友就繼續(xù)往下看吧。
       想要了解內(nèi)建角色,還是少不了下面這張圖,在MongoDB中,用戶的權(quán)限是通過(guò)角色綁定的方法來(lái)分配的。把某個(gè)角色綁定在某個(gè)用戶上,那么這個(gè)用戶就有這個(gè)角色對(duì)應(yīng)的權(quán)限了。
 
       這里對(duì)上面的內(nèi)建角色所擁有的權(quán)限做以說(shuō)明:
 
       數(shù)據(jù)庫(kù)用戶角色:
       read:用于讀取所有非系統(tǒng)集合,以及下面三個(gè)系統(tǒng)集合:
 
       system.indexes、system.js以及system.namesp
 
       readWrite:擁有read角色的所有權(quán)限,并且可以修改所有非系統(tǒng)集合和system.js集合上的數(shù)據(jù)
 
       clusterAdmin:提供最高的集群管理訪問(wèn)權(quán)限,這個(gè)角色擁有clusterManager、clusterMonitor和hostManager角色授予的權(quán)限,除此之外,它還具有dropDatabase()權(quán)限
 
       備份和恢復(fù)角色:
       此類角色只能在admin數(shù)據(jù)庫(kù)中備份和恢復(fù)。
 
       backup:提供備份數(shù)據(jù)的權(quán)限,使用mongodump備份整個(gè)mongod實(shí)例
 
       restore:提供還原數(shù)據(jù)庫(kù)所需的權(quán)限,使用戶可以通過(guò)mongorestore恢復(fù)數(shù)據(jù)
 
       全數(shù)據(jù)庫(kù)角色
       全數(shù)據(jù)庫(kù)角色用于管理所有自定義數(shù)據(jù)庫(kù),但是不包含local和config數(shù)據(jù)庫(kù),它只能被授予在admin用戶下。
 
 
       MongoDB中的角色特點(diǎn)
在MongoDB中,授予用戶某個(gè)角色的權(quán)限時(shí),默認(rèn)授予當(dāng)前數(shù)據(jù)庫(kù)
角色授權(quán)可以授予集合級(jí)別的粒度
角色授權(quán)分成系統(tǒng)集合以及非系統(tǒng)集合的訪問(wèn)權(quán)限
每個(gè)數(shù)據(jù)庫(kù)中的角色都可以分成一般角色和管理角色
管理數(shù)據(jù)庫(kù)可以使用所有的內(nèi)建角色
       NO.2 創(chuàng)建自定義角色
       上面的內(nèi)容,更多的是講述怎樣使用內(nèi)建角色,這里我們來(lái)看創(chuàng)建自定義角色的,
 
       自定義角色有如下三個(gè)特點(diǎn):
 
       1、在一般數(shù)據(jù)庫(kù)上創(chuàng)建的角色,只適用于當(dāng)前數(shù)據(jù)庫(kù)
 
       2、在admin數(shù)據(jù)庫(kù)上創(chuàng)建的角色,可適用于所有數(shù)據(jù)庫(kù)
 
       3、創(chuàng)建角色時(shí),角色名字不能重復(fù),否則報(bào)錯(cuò)alread exist
 
       例如我們想給一個(gè)賬號(hào)分配insert,update、select、而不給delete權(quán)限。
 
       語(yǔ)法:
 
db.createRole(
{
 role:"<name>",
 privileges:[
       {resource:{<resource>},actions:["action",...]}
      ],
 roles:[
     {role:"<role>",db:"<database>"}|"<role>"
    ],
 authenticationRestrictions:[
               {clientSource:["<IP 地址>"|"<CIDR range>",...],
               {serverAddress:["<IP 地址>"|"<CIDR range>",...]}
              ]
}
)
       其中,resource為指定數(shù)據(jù)庫(kù)或者集合,若設(shè)置為空,則默認(rèn)當(dāng)前數(shù)據(jù)庫(kù)的全部集合。
 
       actions:指定權(quán)限
 
       范例:
 
       1、首先我們創(chuàng)建一個(gè)角色:
 
use admin
 
db.createRole(
{
 role:"role_yeyz",
 privileges:[
       {resource:{db:"yeyz",collection:"test"},
       actions:["find","insert","update"]
       }
      ],
 roles:[
     {role:"read",db:"yeyz1"}
    ]
}
)
       這個(gè)角色的名字叫做role_yeyz,它具有yeyz這個(gè)數(shù)據(jù)庫(kù)下面的test集合的查找、插入、更新權(quán)限。同時(shí)它集成了系統(tǒng)的內(nèi)建權(quán)限r(nóng)ead,內(nèi)建權(quán)限的生效數(shù)據(jù)庫(kù)是yeyz1
 
       2、使用show roles查看當(dāng)前角色的創(chuàng)建情況
 
use admin
 
show roles
 
{
    "role" : "role_yeyz",
    "db" : "admin",
    "isBuiltin" : false,
    "roles" : [
        {
            "role" : "read",
            "db" : "yeyz1"
        }
    ],
    "inheritedRoles" : [
        {
            "role" : "read",
            "db" : "yeyz1"
        }
    ]
}
       這里它只顯示了內(nèi)建角色的信息,注意,這個(gè)角色所在的db是admin
 
       3、此時(shí)我們將這個(gè)角色,授予給一個(gè)新的用戶,yeyz_1
 
> db.createUser(
... {
... user: "yeyz_1",
... pwd: "123456",
... roles: [ { role: "role_yeyz", db: "admin" }]
... }
... )
Successfully added user: {
    "user" : "yeyz_1",
    "roles" : [
        {
            "role" : "role_yeyz",
            "db" : "admin"
        }
    ]
}
       我們創(chuàng)建了一個(gè)新的用戶yeyz_1,這個(gè)用戶繼承了我們第一步的自定義角色role_yeyz
 
       4、開始認(rèn)證并執(zhí)行相關(guān)操作。
 
[root@VM-0-14-centos ~]# mongo
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b9daecb8-ffd8-44a7-8af0-d1115057539a") }
MongoDB server version: 4.0.6
> use admin
switched to db admin
> db.auth("yeyz_1","123456")
1
> use yeyz
switched to db yeyz
 
### 測(cè)試查找,成功
> db.test.find()
{ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "aaa" }
 
### 測(cè)試插入,成功
> db.test.insert({"name":"bbb"})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "aaa" }
{ "_id" : ObjectId("5fa7f00e523d80402cdfa326"), "name" : "bbb" }
 

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产福利电影一区 | 国产精品久久一区 | av大片 | 国产精品热 | 亚洲97| 91中文字幕在线观看 | 欧美日韩天堂 | 欧美激情欧美激情在线五月 | 人人爱干 | 成人黄色电影小说 | 夜夜春精品视频高清69式 | 日韩视频中文字幕 | 亚洲国产一区二区三区四区 | 在线播放黄色片网站 | 亚洲午夜精品一区二区三区他趣 | 亚洲欧美日韩在线一区 | 黄色片在线免费观看 | 四虎永久在线 | 亚洲欧洲日本国产 | hd国产人妖ts另类视频 | 国产欧美在线 | 日本一区二区三区四区不卡视频 | 精品国产一区二区三区电影小说 | 国产区免费视频 | 免费不卡视频 | 国产精品久久精品 | 久久精品久久综合 | 午夜视频网站 | 国产欧美一区二区三区在线看 | www.黄网| 不卡一区二区三区四区 | 亚洲第一黄色网 | 麻豆精品 | 国产精品呻吟av | 久久国产精品久久久久久 | 日本高清网站 | 午夜黄色av| 中文字幕一区二区三区四区五区 | 亚洲成人在线观看视频 | 日韩一区二区免费视频 | 久久久久久久久久久免费视频 |