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

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

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

2020-10-29 18:47:38
字體:
供稿:網(wǎng)友

前言

Mongodb 數(shù)據(jù)庫默認(rèn)情況下是沒有訪問控制的,整個數(shù)據(jù)庫對外是開發(fā)的,只要能連上數(shù)據(jù)庫,則可以進(jìn)行任何操作,這會對數(shù)據(jù)帶來很大的風(fēng)險。當(dāng)然,我們可以啟用mongodb的訪問控制,只讓通過認(rèn)證的用戶才能對數(shù)據(jù)庫進(jìn)行角色范圍內(nèi)的操作。

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

db.createUser() 用法

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

參數(shù)說明:

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

Mongodb 預(yù)定義角色

Mongodb 中預(yù)定義了一些角色,把這些角色賦予給適當(dāng)?shù)挠脩羯希脩艟椭荒苓M(jìn)行角色范圍內(nèi)的操作。

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

  • read 用戶可以讀取當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)
  • readWrite 用戶可以讀寫當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)

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

  1. dbAdmin 管理員用戶但不能對用戶和角色管理授權(quán)
  2. dbOwner 數(shù)據(jù)庫所有者可進(jìn)行任何管理任務(wù)
  3. userAdmin 可以管理當(dāng)前數(shù)據(jù)的用戶和角色

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

  1. clusterAdmin 集群所有管理權(quán)限,是 clusterManager , clusterMonitor, hostManager 合集
  2. clusterManager 集群管理和監(jiān)控
  3. clusterMonitor 集群監(jiān)控,只讀的
  4. hostManager 監(jiān)控和管理服務(wù)器

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

  1. backup
  2. restore

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

  1. readAnyDatabase 讀取所有數(shù)據(jù)庫
  2. readWriteAnyDatabase 讀寫所有數(shù)據(jù)庫
  3. userAdminAnyDatabase 所有數(shù)據(jù)庫的 userAdmin 權(quán)限
  4. dbAdminAnyDatabase 所有數(shù)據(jù)庫的 dbAdmin 權(quán)限

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

  1. root 超級用戶

7、內(nèi)部角色

  • __system 所有操作權(quán)限

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

啟用訪問控制的步驟

1, 啟動 mongodb 實例,關(guān)閉 訪問控制

不帶 --auth

./mongod

2, 連接上 mongodb 實例

./mongo

3,創(chuàng)建用戶管理員

在 admin 數(shù)據(jù)庫中添加一個 具有 userAdminAnyDatabase 角色的用戶作為用戶管理用戶。下面的例子中創(chuàng)建了 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,重啟數(shù)據(jù)庫啟用訪問控制

命令行啟動,只需要添加 --auth 參數(shù)

./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 表示認(rèn)證成功

6, 為某個數(shù)據(jù)庫創(chuàng)建獨立用戶

以下為 test 數(shù)據(jù)庫 創(chuàng)建具有讀寫權(quán)限的用戶 test

admin 用戶由于只有 userAdminAnyDatabase 權(quán)限,所以沒有 test 數(shù)據(jù)的讀寫權(quán)限,所以,為了讀寫 test 數(shù)據(jù)庫,我們需要創(chuàng)建一個用戶。先看一下直接用 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 ,意思是沒有權(quán)限。

> 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”) , 再執(zhí)行命令 則沒有報錯

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

試著寫入一條數(shù)據(jù),也是正常的。

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

總結(jié)

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 羞羞的视频免费在线观看 | 亚洲国产超高清a毛毛片 | 九九热免费视频在线观看 | 成人店女老板视频在线看 | 噜噜噜躁狠狠躁狠狠精品视频 | 毛片网站视频 | 免费视频www在线观看 | 天海翼无删减av三级在线观看 | 成人午夜在线免费观看 | 欧美18—19sex性hd按摩 | 国产一区二精品区在线 | 精品国产一区二区三区四区在线 | 国产91对白叫床清晰播放 | 在线观看国产www | 久久55| 国产91对白叫床清晰播放 | 成人短视频在线观看免费 | 久久久国产一区二区三区 | 午夜视频国产 | 欧洲色阁中文字幕 | 国产精品久久久久久婷婷天堂 | 蜜桃成品人免费视频 | 久久视频精品 | 美国av在线免费观看 | 久久久鲁 | 色婷婷久久一区二区 | 91av在线免费观看 | 亚洲天堂在线电影 | 久久99精品久久 | 久久久久久久高清 | 国产午夜亚洲精品理论片大丰影院 | 黄色大片高清 | 毛毛片在线看 | 鲁丝片一区二区三区免费入口 | 超污视频在线看 | 一级视频网站 | 午夜精品福利影院 | 亚洲少妇诱惑 | 九一国产精品 | 做爰xxxⅹ性护士hd在线 | 色羞羞|