亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

Mongodb如何開啟用戶訪問控制詳解

2020-03-14 13:00:57
字體:
來源:轉載
供稿:網友

前言

Mongodb 數據庫默認情況下是沒有訪問控制的,整個數據庫對外是開發的,只要能連上數據庫,則可以進行任何操作,這會對數據帶來很大的風險。當然,我們可以啟用mongodb/111217.html">mongodb的訪問控制,只讓通過認證的用戶才能對數據庫進行角色范圍內的操作。

啟用訪問控制可以通過在啟動 mongodb 時指定 --auth 參數來設置,另外還涉及到創建用戶 db.createUser 操作以及一些角色的定義,我們先來看這部分內容。

db.createUser() 用法

db.createUser({ user: "$USERNAME", pwd: "$PASSWROD", roles: [ { role: "$ROLE_NAME", db: "$DBNAME"} ]})

參數說明:

  • user 是用戶名
  • pwd 是密碼
  • role 來指定用戶的角色
  • db 來指定所屬的數據庫
  • roles 是用戶所有角色的集合

Mongodb 預定義角色

Mongodb 中預定義了一些角色,把這些角色賦予給適當的用戶上,用戶就只能進行角色范圍內的操作。

1、數據庫用戶角色 (所有數據庫都有)

  • read 用戶可以讀取當前數據庫的數據
  • readWrite 用戶可以讀寫當前數據庫的數據

2、數據庫管理角色(所有數據庫都有)

  1. dbAdmin 管理員用戶但不能對用戶和角色管理授權
  2. dbOwner 數據庫所有者可進行任何管理任務
  3. userAdmin 可以管理當前數據的用戶和角色

3、集群管理角色(admin數據庫可用)

  1. clusterAdmin 集群所有管理權限,是 clusterManager , clusterMonitor, hostManager 合集
  2. clusterManager 集群管理和監控
  3. clusterMonitor 集群監控,只讀的
  4. hostManager 監控和管理服務器

4、備份和恢復角色(admin數據庫可用)

  1. backup
  2. restore

5、所有數據庫角色(admin數據庫可用)

  1. readAnyDatabase 讀取所有數據庫
  2. readWriteAnyDatabase 讀寫所有數據庫
  3. userAdminAnyDatabase 所有數據庫的 userAdmin 權限
  4. dbAdminAnyDatabase 所有數據庫的 dbAdmin 權限

6、超級角色(admin數據庫可用)

  1. root 超級用戶

7、內部角色

  • __system 所有操作權限

更多預定于角色的信息請參看:https://docs.mongodb.com/manual/core/security-built-in-roles/

啟用訪問控制的步驟

1, 啟動 mongodb 實例,關閉 訪問控制

不帶 --auth

./mongod

2, 連接上 mongodb 實例

./mongo

3,創建用戶管理員

在 admin 數據庫中添加一個 具有 userAdminAnyDatabase 角色的用戶作為用戶管理用戶。下面的例子中創建了 admin 為用戶管理員。

> use adminswitched to db admin> db.createUser({... user: "admin",... pwd: "admin",... roles: [... { role: "userAdminAnyDatabase", db: "admin"}... ]... })Successfully added user: { "user" : "admin", "roles" : [  {   "role" : "userAdminAnyDatabase",   "db" : "admin"  } ]}>

退出連接

4,重啟數據庫啟用訪問控制

命令行啟動,只需要添加 --auth 參數

./mongo --auth

5,使用管理用戶連接,有兩種方法

  1. 使用命令行 ./mongo -u "$USERNAME" -p "$PASSWROD" --authenticationDatabase "admin"
  2. 使用 db.auth()

我們使用第二種

> > use adminswitched to db admin> db.auth("admin", "admin")1>

1 表示認證成功

6, 為某個數據庫創建獨立用戶

以下為 test 數據庫 創建具有讀寫權限的用戶 test

admin 用戶由于只有 userAdminAnyDatabase 權限,所以沒有 test 數據的讀寫權限,所以,為了讀寫 test 數據庫,我們需要創建一個用戶。先看一下直接用 admin 會報什么錯誤

> use test> show collections2017-01-13T13:49:17.691+0800 E QUERY [thread1] Error: listCollections failed: {"ok" : 0,"errmsg" : "not authorized on test to execute command { listCollections: 1.0, filter: {} }","code" : 13} :_getErrorWithCode@src/mongo/shell/utils.js:25:13DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:773:1DB.prototype.getCollectionInfos@src/mongo/shell/db.js:785:19DB.prototype.getCollectionNames@src/mongo/shell/db.js:796:16shellHelper.show@src/mongo/shell/utils.js:754:9shellHelper@src/mongo/shell/utils.js:651:15@(shellhelp2):1:1

我們直接使用 show collections , 則報錯:not authorized on test to execute command ,意思是沒有權限。

> use testswitched to db test> db.createUser({... user: "test",... pwd: "test",... roles: [... { role: "readWrite", db: "test"}... ]... })Successfully added user: { "user" : "test", "roles" : [  {   "role" : "readWrite",   "db" : "test"  } ]}>

然后我們使用 db.auth(“test”, “test”) , 再執行命令 則沒有報錯

> db.auth("test", "test")1> > show collections

試著寫入一條數據,也是正常的。

> db.t.insert({name:"buzheng"});WriteResult({ "nInserted" : 1 })> db.t.find();{ "_id" : ObjectId("58786c84bf5dd606ddfe1144"), "name" : "buzheng" }>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品va| 国产视频丨精品|在线观看| 日本免费一区二区三区视频观看| 亚洲国产成人精品久久久国产成人一区| 国产精品一久久香蕉国产线看观看| 亚洲wwwav| 亚洲最大成人免费视频| 亚洲第一区第二区| 伊人男人综合视频网| 伊人激情综合网| 成人a在线观看| 成人福利视频网| 8050国产精品久久久久久| 亚洲第一在线视频| 欧美—级a级欧美特级ar全黄| 国语自产在线不卡| 久久久久久美女| 亚洲精品wwww| 国内精品400部情侣激情| 日韩av三级在线观看| 亚洲高清久久久久久| 亚洲一区二区三区四区在线播放| 精品偷拍一区二区三区在线看| 久久久久国产精品www| 国产一区二区在线播放| zzijzzij亚洲日本成熟少妇| 精品国产31久久久久久| 国产精品观看在线亚洲人成网| 中文字幕无线精品亚洲乱码一区| 成人免费在线视频网站| 精品成人av一区| 日韩精品在线免费观看| 亚洲三级 欧美三级| 久久久999国产| 亚洲精品视频播放| 国产成人精品一区二区在线| 国产黑人绿帽在线第一区| 久久久久久久网站| 精品综合久久久久久97| 成人高h视频在线| 久久精品青青大伊人av| 国产一区二区三区在线免费观看| 国产一区二区三区高清在线观看| 亚洲白虎美女被爆操| 国产精品v日韩精品| 日本高清视频一区| 国产999视频| 国产免费一区视频观看免费| 国内精品久久久久久中文字幕| 亚洲精品国产成人| 亚洲视频专区在线| 国产成+人+综合+亚洲欧美丁香花| 奇门遁甲1982国语版免费观看高清| 色哟哟入口国产精品| 国内精品免费午夜毛片| 欧美激情网站在线观看| 国产精品专区一| 久热爱精品视频线路一| 国产精品第一区| 91wwwcom在线观看| 欧美孕妇与黑人孕交| 一区二区在线免费视频| 亚洲欧美日韩精品久久奇米色影视| 国产在线观看精品| 国产成人鲁鲁免费视频a| 懂色aⅴ精品一区二区三区蜜月| 日韩视频免费中文字幕| 色婷婷av一区二区三区久久| 国产欧美精品在线| 一区二区成人av| 欧美成人激情图片网| 日韩欧美高清在线视频| 亚洲精品久久久久久下一站| 蜜月aⅴ免费一区二区三区| 亚洲综合在线播放| 亚洲人成在线观看网站高清| 日韩av电影在线免费播放| 91精品国产高清自在线看超| 国语自产精品视频在线看抢先版图片| 自拍偷拍亚洲在线| 欧美性xxxxx极品娇小| 国产97色在线|日韩| 久色乳综合思思在线视频| 亚洲人午夜精品免费| 国产91在线高潮白浆在线观看| 国产精品日韩电影| 日韩在线高清视频| 欧美视频13p| 亚洲电影免费观看高清完整版| 亚洲人成亚洲人成在线观看| 欧美精品精品精品精品免费| 国产精品丝袜一区二区三区| 中文字幕视频在线免费欧美日韩综合在线看| 91精品国产电影| 另类少妇人与禽zozz0性伦| 亚洲一区二区三区久久| 欧美激情视频在线| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲国产第一页| 裸体女人亚洲精品一区| 亚洲精品国产精品自产a区红杏吧| 国产精品自拍视频| 国产精品18久久久久久麻辣| 97国产真实伦对白精彩视频8| 欧美精品制服第一页| 亚洲一区二区三区久久| 欧美激情视频网| 亚洲成色777777女色窝| 欧美精品久久一区二区| 成人免费观看49www在线观看| 日韩精品极品在线观看播放免费视频| 久久久精品中文字幕| 久久综合免费视频| 欧美第一淫aaasss性| 国产在线拍揄自揄视频不卡99| 欧美激情小视频| 国产在线视频不卡| 岛国av午夜精品| 91精品国产成人www| 欧美精品久久久久| 精品丝袜一区二区三区| 亚洲美女动态图120秒| 亚洲www在线观看| 2019最新中文字幕| 精品视频在线播放色网色视频| 国内揄拍国内精品少妇国语| 亚洲一区二区三区sesese| 欧美精品电影免费在线观看| 国产亚洲激情视频在线| 欧美极度另类性三渗透| 色一区av在线| 亚洲欧美日韩中文视频| 日韩视频免费观看| 国产精品久久久久久久久久久久| 国产精品视频精品| 久久久国产精品免费| 欧美激情成人在线视频| 91国产精品视频在线| 国产69精品久久久久久| 国外色69视频在线观看| 色噜噜久久综合伊人一本| 日韩中文综合网| 国产精品久久一区| 中国日韩欧美久久久久久久久| 国产精品草莓在线免费观看| 色yeye香蕉凹凸一区二区av| 欧美视频在线观看免费| 精品一区二区电影| 麻豆国产va免费精品高清在线| 91精品国产91久久久久久| 亚洲国产精久久久久久久| 亚洲色图15p| 欧美激情亚洲一区| 日韩精品视频在线观看网址| 国产精品久久久久久久av电影| 欧美精品久久久久| 国产精品户外野外| 亚洲伊人一本大道中文字幕| 日韩av在线播放资源| 亚洲精品美女久久久久| 一本色道久久综合狠狠躁篇的优点| 91禁外国网站| 国产脚交av在线一区二区| 国产精品视频男人的天堂|