麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB內建角色包括哪些?優點是什么?

2024-09-07 00:22:35
字體:
來源:轉載
供稿:網友
       MongoDB內建角色包括哪些?特點是什么?剛接觸MongoDB的朋友可能對于MongoDB內建角色不太了解,對此這篇文章就主要給大家介紹一下MongoDB內建角色,感興趣的朋友就繼續往下看吧。
       想要了解內建角色,還是少不了下面這張圖,在MongoDB中,用戶的權限是通過角色綁定的方法來分配的。把某個角色綁定在某個用戶上,那么這個用戶就有這個角色對應的權限了。
 
       這里對上面的內建角色所擁有的權限做以說明:
 
       數據庫用戶角色:
       read:用于讀取所有非系統集合,以及下面三個系統集合:
 
       system.indexes、system.js以及system.namesp
 
       readWrite:擁有read角色的所有權限,并且可以修改所有非系統集合和system.js集合上的數據
 
       clusterAdmin:提供最高的集群管理訪問權限,這個角色擁有clusterManager、clusterMonitor和hostManager角色授予的權限,除此之外,它還具有dropDatabase()權限
 
       備份和恢復角色:
       此類角色只能在admin數據庫中備份和恢復。
 
       backup:提供備份數據的權限,使用mongodump備份整個mongod實例
 
       restore:提供還原數據庫所需的權限,使用戶可以通過mongorestore恢復數據
 
       全數據庫角色
       全數據庫角色用于管理所有自定義數據庫,但是不包含local和config數據庫,它只能被授予在admin用戶下。
 
 
       MongoDB中的角色特點
在MongoDB中,授予用戶某個角色的權限時,默認授予當前數據庫
角色授權可以授予集合級別的粒度
角色授權分成系統集合以及非系統集合的訪問權限
每個數據庫中的角色都可以分成一般角色和管理角色
管理數據庫可以使用所有的內建角色
       NO.2 創建自定義角色
       上面的內容,更多的是講述怎樣使用內建角色,這里我們來看創建自定義角色的,
 
       自定義角色有如下三個特點:
 
       1、在一般數據庫上創建的角色,只適用于當前數據庫
 
       2、在admin數據庫上創建的角色,可適用于所有數據庫
 
       3、創建角色時,角色名字不能重復,否則報錯alread exist
 
       例如我們想給一個賬號分配insert,update、select、而不給delete權限。
 
       語法:
 
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為指定數據庫或者集合,若設置為空,則默認當前數據庫的全部集合。
 
       actions:指定權限
 
       范例:
 
       1、首先我們創建一個角色:
 
use admin
 
db.createRole(
{
 role:"role_yeyz",
 privileges:[
       {resource:{db:"yeyz",collection:"test"},
       actions:["find","insert","update"]
       }
      ],
 roles:[
     {role:"read",db:"yeyz1"}
    ]
}
)
       這個角色的名字叫做role_yeyz,它具有yeyz這個數據庫下面的test集合的查找、插入、更新權限。同時它集成了系統的內建權限read,內建權限的生效數據庫是yeyz1
 
       2、使用show roles查看當前角色的創建情況
 
use admin
 
show roles
 
{
    "role" : "role_yeyz",
    "db" : "admin",
    "isBuiltin" : false,
    "roles" : [
        {
            "role" : "read",
            "db" : "yeyz1"
        }
    ],
    "inheritedRoles" : [
        {
            "role" : "read",
            "db" : "yeyz1"
        }
    ]
}
       這里它只顯示了內建角色的信息,注意,這個角色所在的db是admin
 
       3、此時我們將這個角色,授予給一個新的用戶,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"
        }
    ]
}
       我們創建了一個新的用戶yeyz_1,這個用戶繼承了我們第一步的自定義角色role_yeyz
 
       4、開始認證并執行相關操作。
 
[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
 
### 測試查找,成功
> db.test.find()
{ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "aaa" }
 
### 測試插入,成功
> db.test.insert({"name":"bbb"})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "aaa" }
{ "_id" : ObjectId("5fa7f00e523d80402cdfa326"), "name" : "bbb" }
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 爱看久久 | 久久久久久久一区二区三区 | 久久9999久久 | 亚洲第一黄色网 | 国产人成免费爽爽爽视频 | 色播视频在线播放 | 女人解衣喂奶电影 | 操操操日日日干干干 | 毛毛片在线看 | 欧洲黄视频 | 免费小毛片 | www.成人免费视频 | videos 欧美| 午夜视频在线观看免费视频 | 国产chinesehd精品91| 欧美交在线 | 毛片免费视频观看 | 日本欧美中文字幕 | 色蜜桃av| tube69xxxxxhd| 久久国产综合精品 | 一级做人爱c黑人影片 | 免费毛片在线视频 | 一级免费看片 | 精品亚洲午夜久久久久91 | 久久综合给合久久狠狠狠97色69 | 狠狠干最新网址 | 一级黄色大片在线观看 | 激情亚洲一区二区 | 久久成人免费观看 | 欧美视频一区二区三区在线观看 | 色诱亚洲精品久久久久久 | 黄色大片网 | 成人18网站| 日韩一级成人 | 欧美成人a | 午夜偷拍视频 | 国产一区二区三区四区五区加勒比 | 成人在线精品视频 | 国产精品视频在线观看免费 | tube69xxxxxhd|