好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識(shí)庫 > 詳解MongoDB的角色管理

詳解MongoDB的角色管理

熱門標(biāo)簽:河南電話外呼系統(tǒng)招商 青白江400企業(yè)電話申請(qǐng) 外呼線路資源屬于電信業(yè)務(wù)嗎 呼和浩特外呼系統(tǒng)原理是什么 內(nèi)蒙古營(yíng)銷智能外呼系統(tǒng)哪個(gè)好 長(zhǎng)沙電銷外呼防封卡是什么 crm外呼系統(tǒng)聯(lián)系方式 小裙科技電銷機(jī)器人怎樣 智能外呼系統(tǒng)官網(wǎng)

NO.1 MongoDB內(nèi)建角色

內(nèi)建角色的種類和特點(diǎn)?

想要了解內(nèi)建角色,還是少不了下面這張圖,在MongoDB中,用戶的權(quán)限是通過角色綁定的方法來分配的。把某個(gè)角色綁定在某個(gè)用戶上,那么這個(gè)用戶就有這個(gè)角色對(duì)應(yīng)的權(quán)限了。

MongoDB 4.0中的內(nèi)建角色類型如下:

這里對(duì)上面的內(nèi)建角色所擁有的權(quán)限做以說明:

數(shù)據(jù)庫用戶角色:

read:用于讀取所有非系統(tǒng)集合,以及下面三個(gè)系統(tǒng)集合:

system.indexes、system.js以及system.namesp

readWrite:擁有read角色的所有權(quán)限,并且可以修改所有非系統(tǒng)集合和system.js集合上的數(shù)據(jù)

數(shù)據(jù)庫管理角色:

dbAdmin:提供管理相關(guān)功能,例如查詢統(tǒng)計(jì)信息,索引管理等

userAdmin:提供管理數(shù)據(jù)庫角色及用戶的權(quán)限,具有這個(gè)角色的用戶可以為當(dāng)前數(shù)據(jù)庫的任何用戶,包括自己,分配任何角色和權(quán)限

dbOwner:提供數(shù)據(jù)庫所有者的權(quán)限,它可以對(duì)數(shù)據(jù)庫進(jìn)行任何管理操作,這個(gè)角色結(jié)合了readWrite、dbAdmin、userAdmin三種角色授予的權(quán)限。

集群管理角色:

此類角色提供了管理整個(gè)MongoDB的權(quán)限,角色只能在admin數(shù)據(jù)庫中進(jìn)行授權(quán)。

clusterManager:提供對(duì)集群進(jìn)行管理和監(jiān)控的權(quán)限

clusterMonitor:提供對(duì)監(jiān)控工具的只讀訪問權(quán)限

hostManager:提供監(jiān)控和管理服務(wù)器的權(quán)限

clusterAdmin:提供最高的集群管理訪問權(quán)限,這個(gè)角色擁有clusterManager、clusterMonitor和hostManager角色授予的權(quán)限,除此之外,它還具有dropDatabase()權(quán)限

備份和恢復(fù)角色:

此類角色只能在admin數(shù)據(jù)庫中備份和恢復(fù)。

backup:提供備份數(shù)據(jù)的權(quán)限,使用mongodump備份整個(gè)mongod實(shí)例

restore:提供還原數(shù)據(jù)庫所需的權(quán)限,使用戶可以通過mongorestore恢復(fù)數(shù)據(jù)

全數(shù)據(jù)庫角色

全數(shù)據(jù)庫角色用于管理所有自定義數(shù)據(jù)庫,但是不包含local和config數(shù)據(jù)庫,它只能被授予在admin用戶下。

超級(jí)用戶:

root,這個(gè)不需要過多解釋。

用戶只能在admin數(shù)據(jù)庫中配置這個(gè)權(quán)限,擁有這個(gè)角色的用戶可以對(duì)所有數(shù)據(jù)庫進(jìn)行任何操作。

內(nèi)部角色:

__system僅僅用于MongoDB內(nèi)部的管理,不建議將這個(gè)權(quán)限分配個(gè)用戶,防止用戶對(duì)內(nèi)部系統(tǒng)進(jìn)行操作。

MongoDB中的角色特點(diǎn)

  • 在MongoDB中,授予用戶某個(gè)角色的權(quán)限時(shí),默認(rèn)授予當(dāng)前數(shù)據(jù)庫
  • 角色授權(quán)可以授予集合級(jí)別的粒度
  • 角色授權(quán)分成系統(tǒng)集合以及非系統(tǒng)集合的訪問權(quán)限
  • 每個(gè)數(shù)據(jù)庫中的角色都可以分成一般角色和管理角色
  • 管理數(shù)據(jù)庫可以使用所有的內(nèi)建角色

NO.2 創(chuàng)建自定義角色

    上面的內(nèi)容,更多的是講述怎樣使用內(nèi)建角色,這里我們來看創(chuàng)建自定義角色的,

自定義角色有如下三個(gè)特點(diǎn):

1、在一般數(shù)據(jù)庫上創(chuàng)建的角色,只適用于當(dāng)前數(shù)據(jù)庫

2、在admin數(shù)據(jù)庫上創(chuàng)建的角色,可適用于所有數(shù)據(jù)庫

3、創(chuàng)建角色時(shí),角色名字不能重復(fù),否則報(bào)錯(cuò)alread exist

例如我們想給一個(gè)賬號(hào)分配insert,update、select、而不給delete權(quán)限。

 語法:

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ù)庫或者集合,若設(shè)置為空,則默認(rèn)當(dāng)前數(shù)據(jù)庫的全部集合。

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ù)庫下面的test集合的查找、插入、更新權(quán)限。

同時(shí)它集成了系統(tǒng)的內(nèi)建權(quán)限r(nóng)ead,內(nèi)建權(quán)限的生效數(shù)據(jù)庫是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" }

### 測(cè)試更新,成功
> db.test.update({"name":"aaa"},{$set:{"name":"ccc"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> 
> db.test.find()
{ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "ccc" }
{ "_id" : ObjectId("5fa7f00e523d80402cdfa326"), "name" : "bbb" }

### 測(cè)試刪除,失敗,和我們預(yù)期一致,因?yàn)閞ole_yeyz這個(gè)角色,沒有刪除權(quán)限。
> db.test.remove({"name":"bbb"})
WriteCommandError({
    "ok" : 0,
    "errmsg" : "not authorized on yeyz to execute command { delete: \"test\", ordered: true, lsid: { id: UUID(\"b9daecb8-ffd8-44a7-8af0-d1115057539a\") }, $db: \"yeyz\" }",
    "code" : 13,
    "codeName" : "Unauthorized"
})

以上就是詳解MongoDB的角色管理的詳細(xì)內(nèi)容,更多關(guān)于MongoDB的角色管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 詳解MongoDB中的日志模塊
  • MongoDB聚合group的操作指南
  • java操作mongodb之多表聯(lián)查的實(shí)現(xiàn)($lookup)
  • 2021最新版windows10系統(tǒng)MongoDB數(shù)據(jù)庫安裝及配置環(huán)境
  • MongoDB 常用的數(shù)據(jù)類型和基本操作
  • MongoDB 簡(jiǎn)單入門教程(安裝、基本概念、創(chuàng)建用戶)
  • MongoDB 主分片(primary shard)相關(guān)總結(jié)
  • MongoDB 監(jiān)控工具mongostat和mongotop的使用
  • MongoDB 副本集的搭建過程
  • MongoDB的chunk詳解

標(biāo)簽:呼倫貝爾 菏澤 白山 楚雄 池州 安順 舟山 黃石

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解MongoDB的角色管理》,本文關(guān)鍵詞  詳解,MongoDB,的,角色,管理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解MongoDB的角色管理》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解MongoDB的角色管理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美肥b| 无码精品人妻一区二区三区影院| 伊人婷婷在线| 丰满护士波多野结衣| 成人永久免费视频网站app| 天堂久久久久va久久久久| 免费污视频软件下载| 虐菊鞭打臀缝| 粉嫩无套白浆第一次jk| 搡老女人老妇女老熟女o迅雷下载| 性欧美??潮喷水色欲小说| 老色鬼永久精品无码国产| 少妇婬荡呻吟久久久久久福利姬| 18—20岁精品无码免费A片| 精品国产午夜久久久久九九| 有没有在线看片www| 重囗味sM在线观看无码| 国产伦国产伦老熟300部| 成年男生割包照片真实| EEUSS在线步兵区在线观看| 97超级碰碰碰久久久观看| 女班长被?c??扒衣服作文| 亚洲一区二区三区爽爽爽爽爽| 情趣内衣办公室(H)| 大胸美女???www| 达达兔欧美午夜国产亚洲 | 纯爱1v1高H甜文| 成人免费观看www的片| 国产精品国产三级国产a| 美丽教师吉巴娜完整版| 偷拍精品福利视频在线| 欧美午夜福利1000集2019年| 白衣校花与大长腿免费播放| 动漫美女被?到爽??| 日本里番在线| 91情侣偷在线精品国产| 精品孕妇乱子伦一区二区三区 | 一边摸一边脱| 辽源市| 国产精品久久久高清108P| 国产大学生真实在线播放|