中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

大型網(wǎng)站設(shè)計公司站長素材音效

大型網(wǎng)站設(shè)計公司,站長素材音效,某些網(wǎng)站dns解析失敗,獵場第幾集做的網(wǎng)站推廣整理MongoDB文檔:身份驗證 個人博客,求關(guān)注。 文章概敘 本文主要講MongoDB在單機(jī)狀態(tài)下的賬戶配置。理解了MongoDB的語法,對于如何配置用戶權(quán)限會知道怎么配置,但是請注意給誰配置什么權(quán)限才是最重要的。 最小權(quán)限原則 系統(tǒng)的每個程序或者…

整理MongoDB文檔:身份驗證

個人博客,求關(guān)注。

文章概敘

本文主要講MongoDB在單機(jī)狀態(tài)下的賬戶配置。理解了MongoDB的語法,對于如何配置用戶權(quán)限會知道怎么配置,但是請注意給誰配置什么權(quán)限才是最重要的。

最小權(quán)限原則

系統(tǒng)的每個程序或者用戶應(yīng)該使用完成工作所需的最小權(quán)限工作

在MongoDB中,最小權(quán)限原則指的用戶的訪問、操作權(quán)限應(yīng)限制為僅執(zhí)行日常授權(quán)活動絕對需要的那些資源。

如一個標(biāo)準(zhǔn)的開發(fā)者,你應(yīng)該給予的是開發(fā)環(huán)境下的特定庫的讀寫權(quán)限,甚至必要情況下給予admin的權(quán)限,以免影響到開發(fā)的進(jìn)度。

但對一個生產(chǎn)環(huán)境的數(shù)據(jù)庫,應(yīng)該只給予開發(fā)者查看數(shù)據(jù)的權(quán)限,最好不要給予修改數(shù)據(jù)甚至是admin的權(quán)限,不然人家刪庫跑路,或者遇到新手修改了數(shù)據(jù)庫結(jié)構(gòu)導(dǎo)致線上爆炸,我想你可能過不了一個好年了。。。

MongoDB用戶角色

在 MongoDB 中,用戶角色用于控制用戶對數(shù)據(jù)庫和集合的訪問權(quán)限。

在MongoDB中,訪問權(quán)限并不是針對整個系統(tǒng)的,而是針對數(shù)據(jù)庫的。也就是說你給一個開發(fā)者分配了一個賬號,并不是說這個開發(fā)者可以直接登陸我們的DB,并且訪問所有的DB,而是給這個開發(fā)者a庫以及b庫的權(quán)限,然后他可以在指定的兩個庫中進(jìn)行操作,但是無法到c庫中進(jìn)行為所欲為的操作。

除了從數(shù)據(jù)庫的層面進(jìn)行管控,還對權(quán)限方面進(jìn)行區(qū)分以及管控,如前面所提的,開發(fā)者在生產(chǎn)環(huán)境下,應(yīng)該只對數(shù)據(jù)庫有查看的權(quán)限,不應(yīng)該對其有修改的權(quán)限,也就是說查看以及修改兩者是分開的。

接下來用一兩個例子,通過對MongoDB的語法來了解角色權(quán)限這一塊。

內(nèi)置角色

https://www.mongodb.com/docs/manual/reference/built-in-roles/

MongoDB為我們創(chuàng)建了一堆的角色,被稱為內(nèi)置角色。而每一個內(nèi)置角色的權(quán)限都不相同,當(dāng)前的版本是依據(jù)7.x,上述已經(jīng)將文章的原鏈接放上去了,強(qiáng)烈建議大家去查看。

下面先列出所有的角色類別。

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

數(shù)據(jù)庫用戶角色擁有read 以及readWriter權(quán)限。

read 提供讀取所有非系統(tǒng)集合上的數(shù)據(jù)的能力。即除了config、local、admin的表。

readWriter 提供在read的能力上外加修改所有非系統(tǒng)集合的能力。

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

數(shù)據(jù)庫管理角色擁有dbAdmin, dbOwner, userAdmin權(quán)限。

dbAdmin提供執(zhí)行管理任務(wù)的能力,例如與架構(gòu)相關(guān)的任務(wù)、索引和收集統(tǒng)計信息。此角色不授予用戶和角色管理權(quán)限。

userAdmin提供在當(dāng)前數(shù)據(jù)庫,即可以在當(dāng)前的數(shù)據(jù)庫中修改人員的權(quán)限。

dbOwner數(shù)據(jù)庫所有者可以對數(shù)據(jù)庫執(zhí)行任何管理操作。此角色結(jié)合了由readWrite, dbAdmin和userAdmin角色。

群集管理角色

集群管理角色擁有clusterAdmin, clusterManager, clusterMonitor, hostManager的權(quán)限。

clusterManager提供對群集的管理和監(jiān)視操作,一個具有此角色的用戶可以訪問和數(shù)據(jù)庫,這些數(shù)據(jù)庫用于分片和復(fù)制。

clusterMonitor提供對監(jiān)視工具的只讀訪問權(quán)限。

hostManager提供監(jiān)視和管理服務(wù)器的功能。

clusterAdmin提供最大的群集管理訪問權(quán)限。此角色結(jié)合了 授予的特權(quán)clusterManager, clusterMonitor和hostManager角色。此外,該角色還提供dropDatabase行動。

備份和還原角色

備份和還原角色擁有backup、restore。

backup提供備份數(shù)據(jù)所需的最小權(quán)限。

restore提供從備份還原數(shù)據(jù)的權(quán)限。

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

全數(shù)據(jù)庫角色擁有readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase的權(quán)限。

readAnyDatabase提供除了admin, config, local庫之外的所有數(shù)據(jù)庫的讀取權(quán)限。

readWriteAnyDatabase在readAnyDatabase的基礎(chǔ)上,外加提供除了admin, config, local庫之外的所有數(shù)據(jù)庫的編輯權(quán)限。

userAdminAnyDatabase提供除了admin, config, local庫之外的所有數(shù)據(jù)庫的用戶管理操作訪問權(quán)限。

dbAdminAnyDatabase提供除了admin, config, local庫之外的所有數(shù)據(jù)庫的管理員管理操作訪問權(quán)限。

超級用戶角色

超級用戶角色擁有root 權(quán)限。

root為角色提供為任何用戶分配任何權(quán)限的功能、任何數(shù)據(jù)庫,這意味著具有這些角色之一的用戶可以為自己分配對任何數(shù)據(jù)庫的任何特權(quán)。

內(nèi)部角色

內(nèi)部角色擁有的是__system權(quán)限,一般不會使用到,也超級不建議分配出去。所以不做介紹。

創(chuàng)建用戶

當(dāng)了解了MongoDB的各個角色后,我們就進(jìn)入到創(chuàng)建角色的篇章,基于前面所提及的最小權(quán)限原則,我們創(chuàng)建一個root賬號作為后門,以及創(chuàng)建一個在test的只讀賬號還有在test的讀寫賬號做測試,首先我們需要進(jìn)入到admin庫中。

use admin
db.createUser({user: 'root',pwd: 'root',roles: ['root']})

創(chuàng)建完了root權(quán)限后,再創(chuàng)建兩個上述的用戶。

db.createUser({user: "testRead",pwd: passwordPrompt(),roles: [{ role: "readWrite", db: "test" }]}
)
db.createUser({user: "testReadWrite",pwd: passwordPrompt(),roles: [{ role: "readWrite", db: "test" }]}
)

在這里插入圖片描述

使用passwordPrompt()來代替原本的文字輸入,畢竟這樣子畢竟正經(jīng)點。

列出用戶

當(dāng)前創(chuàng)建了三個用戶,但是在繼續(xù)操作之前,我們需要將其打印出來,以防止你在測試的時候有問題,但是自己不知道,在admin的庫下,輸入下方的指令。

db.system.users.find({},{ "user": 1, "roles": 1 })

在這里插入圖片描述

此時可以看到,不小心將testRead的權(quán)限寫錯了,應(yīng)該為read權(quán)限,所以后續(xù)我們要修改它,但是現(xiàn)在先記下來,不做任何改動。

啟用訪問控制

在MongoDB部署上啟用訪問控制會強(qiáng)制執(zhí)行身份驗證。啟用訪問控制后,用戶需要標(biāo)識自己的身份并且只能執(zhí)行符合授予的權(quán)限的操作分配給其用戶的角色。

啟動訪問控制的方式有兩種。

一種在命令行中啟,需要在命令行選項中增加 --auth:

mongod --auth --port 27017

第二種方式是使用配置文件啟動MongoDB,在配置文件中增加security.authorization設(shè)置

security:authorization: enabled

在這里插入圖片描述

由于本人喜歡用net start mongodb來啟動單機(jī)服務(wù),所以就直接使用第二種來啟動賬號驗證了。

在這里插入圖片描述

驗證權(quán)限

現(xiàn)在我們重新啟動,并且進(jìn)入到服務(wù)中了,因此我們需要調(diào)用下面的方法來輸入我們的賬號密碼,先拿個root賬號試試

db.auth("root","root")

在這里插入圖片描述

接著,我們想起了之前設(shè)置錯誤的賬號–test庫下面的testRead,此時,可以使用下面的語法進(jìn)行更新(正常情況下,都是在admin賬號下進(jìn)行的操作,不會在未開啟auth的時候進(jìn)行修改,所以此時才進(jìn)行修改,盡可能的模擬出開發(fā)環(huán)境

db.updateUse("testRead",{roles: [{ role: "read", db: "test" }]})

在這里插入圖片描述

修改成功,接下來查看testRead賬號是否只有權(quán)限查看test下的數(shù)據(jù)。當(dāng)然了,修改密碼,也是可以這么設(shè)置的,只是參數(shù)修改為password。

在這里插入圖片描述

可以看到,當(dāng)更改為了testRead賬號之后,只能執(zhí)行查看test庫下的數(shù)據(jù),無法進(jìn)行任何的修改操作。

刪除角色

對于角色的操作,有了增、改、查,那么就剩下刪除的api了,而對于刪除,我們需要使用到之前的root賬號,并且在admin庫下進(jìn)行修改。
刪除角色比較簡單,需要注意的是在admin庫中進(jìn)行刪除,并且需要有管理員權(quán)限。可以使用

db.system.users.remove({ "user": "testRead" })

在這里插入圖片描述

至此,單機(jī)模式下的mongodb 賬號驗證就完成了,更多的是需要注意每一個role代表的是什么,如果無法滿足角色要求,還有一個更加詳細(xì)的自定義角色涉及到集合,但是很少用到,太細(xì)致的權(quán)限反而會加大開發(fā)成本,總不能每加一個集合,都要考慮分配給誰誰誰權(quán)限吧?

可視化工具中訪問

mongodb://username:password@localhost:27017
mongodb://root:root@localhost:27017

在這里插入圖片描述

http://www.risenshineclean.com/news/6447.html

相關(guān)文章:

  • 湛江有幫公司做網(wǎng)站營銷型網(wǎng)站更受用戶歡迎的原因是
  • 公眾號后端框架網(wǎng)站seo排名優(yōu)化價格
  • 無錫做智能網(wǎng)站流量精靈官網(wǎng)
  • 做問卷的網(wǎng)站有哪些內(nèi)容貼吧友情鏈接在哪
  • 北海哪家做網(wǎng)站百度推廣怎么做
  • 個人網(wǎng)站官網(wǎng)如何建立免費公司網(wǎng)站
  • 網(wǎng)站建設(shè)的威脅seo百度點擊軟件
  • 北京學(xué)生做兼職的網(wǎng)站電子郵件營銷
  • 做的比較好看的國內(nèi)網(wǎng)站怎么制作個人網(wǎng)站
  • 使用java做新聞網(wǎng)站思路深圳搜索競價賬戶托管
  • 成都網(wǎng)站建設(shè)制作價格有人看片嗎免費的
  • 建設(shè)銀行銀行社會招聘網(wǎng)站在線域名解析ip地址
  • 網(wǎng)站活動平臺推廣計劃網(wǎng)絡(luò)域名怎么查
  • 河南做網(wǎng)站 河南網(wǎng)站建設(shè)seo營銷
  • 項目建設(shè)資金來源網(wǎng)站網(wǎng)站百度收錄批量查詢
  • emblog詳細(xì)轉(zhuǎn)wordpress福州seo網(wǎng)站推廣優(yōu)化
  • 做網(wǎng)站代理屬于開設(shè)賭場罪嗎國內(nèi)搜索網(wǎng)站排名
  • 建網(wǎng)站怎么年賺專業(yè)做網(wǎng)站建設(shè)的公司
  • 技術(shù)支持 隨州網(wǎng)站建設(shè)永久不收費的軟件app
  • 重慶建站塔山雙喜運(yùn)營培訓(xùn)班有用嗎
  • 局門戶網(wǎng)站的建設(shè)網(wǎng)站怎么創(chuàng)建
  • 怎么做免費域名網(wǎng)站百度首頁官網(wǎng)
  • 推薦中山精品網(wǎng)站建設(shè)杭州網(wǎng)絡(luò)排名優(yōu)化
  • 我們?yōu)槭裁催x擇做電子商務(wù)網(wǎng)站免費發(fā)seo外鏈平臺
  • 東莞網(wǎng)站建設(shè)seo網(wǎng)絡(luò)推廣軟件
  • 社區(qū)電商平臺有哪些seo營銷是什么
  • 網(wǎng)站推廣工作好做嗎國內(nèi)疫情最新消息
  • 怎么做阿里巴巴官網(wǎng)站模板建站教程
  • 深圳學(xué)校網(wǎng)站建設(shè)報價北京疫情最新新聞
  • 政府網(wǎng)站規(guī)范化建設(shè)廣告關(guān)鍵詞有哪些