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

首頁 > 數據庫 > MongoDB > 正文

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

2020-10-29 18:47:38
字體:
來源:轉載
供稿:網友

前言

Mongodb 數據庫默認情況下是沒有訪問控制的,整個數據庫對外是開發的,只要能連上數據庫,則可以進行任何操作,這會對數據帶來很大的風險。當然,我們可以啟用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" }>

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色妞久久福利网| 欧美在线视频导航| 成人在线视频网| 成人欧美在线观看| 久久精品国产综合| 国产福利精品av综合导导航| 亚洲自拍偷拍色片视频| 国产精品欧美风情| 亚洲亚裔videos黑人hd| 欧美激情一二区| 亚洲加勒比久久88色综合| 日韩亚洲综合在线| 久久久久久久久91| 亚洲影院污污.| 国产精品国产福利国产秒拍| www.久久草.com| 国产欧美精品日韩| 成人两性免费视频| 国产脚交av在线一区二区| 国产热re99久久6国产精品| 精品国偷自产在线| 亚洲护士老师的毛茸茸最新章节| 久久精品青青大伊人av| 国产亚洲欧洲高清一区| 国产精品成人av在线| 精品自拍视频在线观看| 国产男人精品视频| 91久久精品日日躁夜夜躁国产| 红桃av永久久久| 日韩国产高清污视频在线观看| 日韩av成人在线| 欧美激情高清视频| 精品欧美国产一区二区三区| 美日韩精品视频免费看| 日本不卡高字幕在线2019| 亚洲热线99精品视频| 国产精品美女久久久久久免费| 色噜噜久久综合伊人一本| 精品亚洲一区二区三区四区五区| 亚洲国产精品系列| 91久久国产综合久久91精品网站| 国产69精品久久久| 欧美国产日韩一区二区三区| 亚洲国产精品va在线| 日本久久久久久| 久久久久久久久国产精品| 欧美极品少妇xxxxⅹ免费视频| 久久久综合av| 91成人在线观看国产| 岛国视频午夜一区免费在线观看| 91久久久久久久| 久久成人一区二区| 中文.日本.精品| 欧美wwwxxxx| 成人久久精品视频| 国产欧美精品一区二区三区-老狼| 日韩福利伦理影院免费| 亚洲欧美日韩精品久久奇米色影视| 欧美一区二区三区艳史| 亚洲www在线| 少妇高潮久久77777| 久久久久久久999精品视频| 亚洲欧美成人在线| 欧美日韩国产成人在线观看| 亚洲系列中文字幕| 国产欧美一区二区三区视频| 日产日韩在线亚洲欧美| 91在线免费视频| 欧美亚洲第一页| 亚洲国产三级网| 国产精品视频公开费视频| 久久久女人电视剧免费播放下载| 亚洲高清一二三区| 2025国产精品视频| 91网站免费观看| 欧美成人免费小视频| 国产精品视频一| 国产亚洲在线播放| 最新国产精品亚洲| 久久综合色88| 亚洲午夜性刺激影院| 精品亚洲一区二区三区在线播放| 日本韩国欧美精品大片卡二| 成人午夜高潮视频| 国产一区二区三区在线视频| 欧美裸体视频网站| 欧美色视频日本高清在线观看| 久久成人这里只有精品| 97国产精品免费视频| 欧美高清性猛交| 97久久久久久| 国模精品视频一区二区| 懂色av中文一区二区三区天美| 奇米影视亚洲狠狠色| 96国产粉嫩美女| 亚洲18私人小影院| 亚洲黄色在线看| 中文字幕日韩av综合精品| 国产99久久精品一区二区| 97在线观看视频| 亚洲电影免费观看高清完整版在线观看| 国产日韩在线视频| 欧美激情a在线| 日av在线播放中文不卡| 亚洲精品97久久| 欧美大奶子在线| 91九色视频在线| 91精品国产91久久久| 中文字幕不卡在线视频极品| 亚洲国产精品久久91精品| 亚洲高清色综合| 一道本无吗dⅴd在线播放一区| 成人天堂噜噜噜| 精品国产鲁一鲁一区二区张丽| 性色av一区二区三区在线观看| 日韩av电影在线网| 日韩免费在线播放| 亚洲国产私拍精品国模在线观看| 久久精品视频亚洲| 成人黄色av网站| 亚洲а∨天堂久久精品喷水| 97在线免费观看视频| 欧美在线免费观看| 精品日韩中文字幕| 亚洲精品有码在线| 国产精品一区二区三区久久久| 日韩天堂在线视频| 一区二区三区精品99久久| 日韩欧美在线视频日韩欧美在线视频| 日本精品视频网站| 亚洲电影免费观看| 91探花福利精品国产自产在线| 久久影视电视剧凤归四时歌| 97在线视频一区| 日韩视频免费中文字幕| 欧美床上激情在线观看| 欧美成人午夜剧场免费观看| 欧美电影《睫毛膏》| 国产一区二区成人| 欧美性xxxxhd| 狠狠躁天天躁日日躁欧美| 九九热这里只有精品免费看| 亚洲一区av在线播放| 亚洲久久久久久久久久久| 中文字幕亚洲二区| 欧美www在线| 热re99久久精品国产66热| 亚洲国内高清视频| 大桥未久av一区二区三区| 日韩欧美aⅴ综合网站发布| 亚洲第一页在线| 亚洲精品视频中文字幕| 日本精品免费一区二区三区| 久久久久久久久国产精品| 一区二区三区黄色| 欧美电影免费播放| 日韩欧美在线视频观看| 奇米四色中文综合久久| 久久久久久久久爱| 精品国产欧美一区二区五十路| 日韩av免费在线| 国产精品1234| 亚洲人成网站免费播放| 亚洲电影免费观看高清|