欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Docker的MongoDB實現(xiàn)授權訪問的方法

 更新時間:2017年03月30日 15:45:41   投稿:mrr  
這篇文章主要介紹了基于Docker的MongoDB實現(xiàn)授權訪問的方法,需要的朋友可以參考下

基于Docker部署一個數(shù)據(jù)庫實例通常比直接在服務器上安裝數(shù)據(jù)庫還要簡單,Gevin在開發(fā)環(huán)境中經常使用基于docker的數(shù)據(jù)庫服務,docker也漸漸成為Gevin在Linux上安裝MongoDB的首選方式,由于MongoDB默認是不用通過認證就能直接連接的,出于安全考慮,在公網(wǎng)上部署MongoDB時,務必設置authentication機制,以避免類似 "黑客贖金" 問題的發(fā)生。

那么,基于Docker拉起的MongoDB,如何實現(xiàn)通過用戶名密碼訪問指定數(shù)據(jù)庫呢?方法很簡單,但前提是要了解MongoDB授權訪問的機制,參考資料如下:

Enable Auth
Authentication
Role-Based Access Control

只要了解MongoDB授權訪問機制,直接按下面步驟一步步執(zhí)行就可以了。

1、創(chuàng)建MongoDB實例

為了少寫幾個命令,Gevin使用Docker Compose來創(chuàng)建MongoDB實例:

version: '2'
services:
 mongo:
  # restart: always
  image: mongo:3.2
  command: [--auth]
  ports:
   - "37017:27017"
  volumes:
   - /data/db

運行如下命令:

docker-compose up -d
#----------
# Result:
#----------
# Creating mongodb_mongo_1
docker-compose ps
#----------
# Result:
#----------
#   Name        Command     State      Ports
# --------------------------------------------------------------------------
# mongodb_mongo_1  /entrypoint.sh --auth  Up   0.0.0.0:37017->27017/tcp

2、創(chuàng)建用戶管理員

首先要進入MongoDB容器內部,連上MongoDB,并切換到 admin 數(shù)據(jù)庫,這步可以通過下面命令完成:

docker exec -it mongodb_mongo_1 mongo admin
#----------
# Result:
#----------
# MongoDB shell version: 3.2.12
# connecting to: admin
# Welcome to the MongoDB shell.
# For interactive help, type "help".
# For more comprehensive documentation, see
#  http://docs.mongodb.org/
# Questions? Try the support group
#  http://groups.google.com/group/mongodb-user

然后創(chuàng)建一個user administrator:

db.createUser({ 
  user: 'mongo-admin', 
  pwd: 'admin-initial-password', 
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
#----------
# Result:
#----------
Successfully added user: {
  "user" : "mongo-admin",
  "roles" : [
    {
      "role" : "userAdminAnyDatabase",
      "db" : "admin"
    }
  ]
}

3、創(chuàng)建訪問指定數(shù)據(jù)庫的用戶

創(chuàng)建了user administrator后,需要退出mongodb,并重新連接,然后用user administrator 訪問admin數(shù)據(jù)庫,并為目標數(shù)據(jù)庫創(chuàng)建目標用戶,其具體步驟如下:

(1)重新連接MongoDB數(shù)據(jù)庫

退出容器,重新用下面命令進入容器即可:

docker exec -it mongodb_mongo_1 mongo admin
#----------
# Result:
#----------
MongoDB shell version: 3.2.12
connecting to: admin

(2)授權登錄admin

db.auth("mongo-admin","admin-initial-password")

(3)創(chuàng)建訪問指定數(shù)據(jù)庫的用戶

# Step1: switch to the specified database:
use octblog
# Step2: create a user
db.createUser(
 {
  user: "gevin",
  pwd: "gevin",
  roles: [ { role: "readWrite", db: "octblog" },
       { role: "readWrite", db: "octblog-log" } ]
 }
)
#----------
# Result:
#----------
#Successfully added user: {
#  "user" : "gevin",
#  "roles" : [
#    {
#      "role" : "readWrite",
#      "db" : "octblog"
#    },
#    {
#      "role" : "readWrite",
#      "db" : "octblog-log"
#    }
#  ]
#}

這一步的目標是為 octblog 這個數(shù)據(jù)庫創(chuàng)建一個授權訪問用戶,首先要從 admin 數(shù)據(jù)庫切換到 octblog 數(shù)據(jù)庫,然后才能為 octblog 添加授權訪問用戶

注:

上面所以操作均為user administrator執(zhí)行的,即第二步創(chuàng)建的 mongo-admin user administrator的作用是管理用戶,MongoDB下的每個數(shù)據(jù)庫,用戶都被它管理,除此外,它基本沒什么更多權限做其他事情MongoDB沒有通常意義的超級用戶的概念,octblog的授權用戶只能被user administrator創(chuàng)建,而user administrator只能登陸admin數(shù)據(jù)庫,所以才會有上面(2)、(3)兩步的麻煩。

以上所述是小編給大家介紹的基于Docker的MongoDB實現(xiàn)授權訪問的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 詳解Docker 數(shù)據(jù)卷管理

    詳解Docker 數(shù)據(jù)卷管理

    本篇文章主要介紹了Docker 數(shù)據(jù)卷管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 在Ubuntu上使用Grafana監(jiān)控Docker的方法

    在Ubuntu上使用Grafana監(jiān)控Docker的方法

    如今越來越多的公司開始使用Docker,一談起Docker總是會跟著讓人聯(lián)想到輕量這個詞,甚至會有一種通過Docker啟動一個服務會節(jié)省很多資源的錯覺。然而Docker的「輕」也只是相對于傳統(tǒng)虛擬機而已。Docker如何監(jiān)控呢?本文就給大家介紹在Ubuntu上如何使用Grafana監(jiān)控Docker。
    2016-12-12
  • Docker搭建一個nginx服務的實現(xiàn)

    Docker搭建一個nginx服務的實現(xiàn)

    Nginx是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務,本文主要介紹了Docker搭建一個nginx服務的實現(xiàn),感興趣的可以了解一下
    2024-08-08
  • windows docker環(huán)境設置注意事項

    windows docker環(huán)境設置注意事項

    這篇文章主要介紹了windows docker環(huán)境設置注意事項的相關資料,需要的朋友可以參考下
    2017-01-01
  • docker操作Permission denied無權限的問題解決

    docker操作Permission denied無權限的問題解決

    我們日常需要docker環(huán)境進入容器配置或查看一些文件,本文主要介紹了docker操作Permission denied無權限的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 在CentOS 7 上為docker配置端口轉發(fā)以兼容firewall的解決方法

    在CentOS 7 上為docker配置端口轉發(fā)以兼容firewall的解決方法

    這篇文章主要介紹了在CentOS 7 上為docker配置端口轉發(fā)以兼容firewall的解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產力

    Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產力

    這篇文章主要介紹了Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產力,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 使用docker-compose.yml構建鏡像的方法

    使用docker-compose.yml構建鏡像的方法

    docker-compose是docker提供的一個命令行工具,用來定義和運行由多個容器組成的應用,這篇文章主要介紹了使用docker-compose.yml構建鏡像的方法,需要的朋友可以參考下
    2023-05-05
  • 多云環(huán)境下的Docker部署策略實現(xiàn)

    多云環(huán)境下的Docker部署策略實現(xiàn)

    在多云環(huán)境下,Docker容器技術為應用程序的部署提供了高度的靈活性和可擴展性,本文就來介紹一下多云環(huán)境下的Docker部署策略實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • docker?創(chuàng)建容器時指定容器ip的實現(xiàn)示例

    docker?創(chuàng)建容器時指定容器ip的實現(xiàn)示例

    在實際部署中,我們需要指定容器ip,本文主要介紹了docker?創(chuàng)建容器時指定容器ip,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評論