Docker创建MongoDB容器并添加root密码验证与更多用户详细步骤

 更新时间:2023年01月04日 15:09:43   作者:呆萌的代Ma  
MongoDB是一个著名的面向文档的数据库,被许多现代Web应用程序使用,下面这篇文章主要给大家介绍了关于Docker创建MongoDB容器并添加root密码验证与更多用户的相关资料,需要的朋友可以参考下

首先下载镜像文件

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: 超级用户

总结

到此这篇关于Docker创建MongoDB容器并添加root密码验证与更多用户的文章就介绍到这了,更多相关Docker创建MongoDB容器添加密码验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker镜像导入导出的两种方法

    docker镜像导入导出的两种方法

    本文主要介绍了docker镜像导入导出的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 关于构建aarch64环境Mysql8.0的Docker镜像问题

    关于构建aarch64环境Mysql8.0的Docker镜像问题

    这篇文章主要介绍了构建aarch64环境Mysql8.0的Docker镜像,需要的朋友可以参考下
    2022-04-04
  • Docker镜像多架构构建介绍

    Docker镜像多架构构建介绍

    这篇文章主要介绍了Docker镜像多架构构建介绍,文章围绕主题展开详细的介绍,具有一点定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • Docker 通过端口来连接一个容器的实现

    Docker 通过端口来连接一个容器的实现

    这篇文章主要介绍了Docker 通过端口来连接一个容器的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker 使用mysqldump命令备份导出项目中的mysql数据

    docker 使用mysqldump命令备份导出项目中的mysql数据

    这篇文章主要介绍了docker 使用mysqldump命令备份导出项目中的mysql数据本文通过命令给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • docker容器因报错无法启动问题的检查及修复容器错误并重启

    docker容器因报错无法启动问题的检查及修复容器错误并重启

    随着容器技术的发展,现在很多的应用程序系统都会选择使用docker容器进行部署,下面这篇文章主要给大家介绍了关于docker容器因报错无法启动问题的检查及修复容器错误并重启的相关资料,需要的朋友可以参考下
    2023-03-03
  • 一文详解如何配置docker通过代理服务器拉取镜像

    一文详解如何配置docker通过代理服务器拉取镜像

    这篇文章主要给大家介绍了关于如何配置docker通过代理服务器拉取镜像的相关资料,如果在拉取Docker镜像时遇到速度较慢的问题,可以尝试以下几种方法解决,需要的朋友可以参考下
    2024-07-07
  • Docker容器安装Vim编辑器的方法

    Docker容器安装Vim编辑器的方法

    Docker容器是一种轻量级、可移植的应用程序打包解决方案,在本文中,我们将讨论如何在Docker容器中安装Vim编辑器,为容器增添一个功能强大的文本编辑器,感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • 使用docker compose搭建consul集群环境的例子

    使用docker compose搭建consul集群环境的例子

    consul是HashCorp公司推出使用go语言编写的开源工具,用于实现分布式系统的服务发现与配置,今天给大家普及使用docker compose搭建consul集群环境的方法及consul基本知识讲解,感兴趣的朋友一起看看吧
    2021-06-06
  • Docker网段和内网网段ip冲突导致无法访问网络的两种解决方法

    Docker网段和内网网段ip冲突导致无法访问网络的两种解决方法

    本文主要介绍了Docker网段和内网网段冲突导致无法访问网络的两种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论