日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Docker創建MongoDB容器并添加root密碼驗證與更多用戶詳細步驟_docker

作者:呆萌的代Ma ? 更新時間: 2023-02-12 編程語言

首先下載鏡像文件

sudo docker pull mongo

無密碼驗證創建容器

docker run -itd --name mongo -p 27017:27017 mongo

這時創建的MongoDB是沒有用戶名與密碼的,比如使用python連接mongodb時只需要:

pymongo.MongoClient(host='localhost', port=27017)

需要密碼驗證創建容器

整個流程是:

  • 創建需要驗證的容器
  • 進入容器內部,進入數據庫命令行
  • 創建root用戶與密碼
  • 登錄root用戶
  • 通過root用戶的權限創建其他用戶

步驟1:創建需要驗證的容器

修改創建容器的方法為:

sudo docker run -itd --name docker-mongo -p 27017:27017 mongo --auth

步驟2:進入容器內部,進入數據庫命令行

只需要使用--auth即可創建需要驗證的容器,然后需要進入容器內部,創建更多用戶:

sudo docker exec -it docker-mongo /bin/bash

進入容器后,運行:

mongosh

這樣就進入了mongodb的命令界面。

步驟3:創建root用戶與密碼

創建超級用戶:

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

這樣就創建了root用戶與密碼:

  • 用戶名:root
  • 密碼:root_pass
  • 權限:root

步驟4:登錄root用戶

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

返回 { ok: 1 },證明root用戶創建成功

步驟5:通過root用戶的權限創建其他用戶

創建對所有數據庫有讀寫權限的用戶:

db.createUser({ user: "dbrw" , pwd: "dbrw_pass", roles: ["readWriteAnyDatabase"]})

這樣就創建了一個新用戶:

  • 用戶名:dbrw
  • 密碼:dbrw_pass
  • 權限:readWriteAnyDatabase

同樣可以創建自定義的權限:

db.createUser({
    user:"ccc_user",
    pwd:"ccc_123456",
    roles:[
        {role:"readWrite",db:"new_db_1"},
        {role:"readWrite",db:"new_db_2"},
        'readAnyDatabase'
    ]
})

通過這種方式創建的用戶,可以得到:

  • 用戶名:ccc_user
  • 密碼:ccc_123456
  • 權限:
    • 讀寫權限:數據庫new_db_1
    • 讀寫權限:數據庫new_db_2
    • 只讀權限:除new_db_1、new_db_2外的其他數據庫

權限&名稱請參考

數據庫用戶角色

  • read: 只讀數據權限
  • readWrite:學些數據權限

數據庫管理角色

  • dbAdmin: 在當前db中執行管理操作的權限
  • dbOwner: 在當前db中執行任意操作
  • userADmin: 在當前db中管理user的權限

備份和還原角色

  • backup
  • restore

跨庫角色

  • readAnyDatabase: 在所有數據庫上都有讀取數據的權限
  • readWriteAnyDatabase: 在所有數據庫上都有讀寫數據的權限
  • userAdminAnyDatabase: 在所有數據庫上都有管理user的權限
  • dbAdminAnyDatabase: 管理所有數據庫的權限

集群管理

  • clusterAdmin: 管理機器的最高權限
  • clusterManager: 管理和監控集群的權限
  • clusterMonitor: 監控集群的權限
  • hostManager: 管理Server

超級權限

  • root: 超級用戶

總結

原文鏈接:https://blog.csdn.net/weixin_35757704/article/details/128505647

欄目分類
最近更新