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容器添加密码验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于构建aarch64环境Mysql8.0的Docker镜像问题
这篇文章主要介绍了构建aarch64环境Mysql8.0的Docker镜像,需要的朋友可以参考下2022-04-04docker 使用mysqldump命令备份导出项目中的mysql数据
这篇文章主要介绍了docker 使用mysqldump命令备份导出项目中的mysql数据本文通过命令给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-12-12docker容器因报错无法启动问题的检查及修复容器错误并重启
随着容器技术的发展,现在很多的应用程序系统都会选择使用docker容器进行部署,下面这篇文章主要给大家介绍了关于docker容器因报错无法启动问题的检查及修复容器错误并重启的相关资料,需要的朋友可以参考下2023-03-03使用docker compose搭建consul集群环境的例子
consul是HashCorp公司推出使用go语言编写的开源工具,用于实现分布式系统的服务发现与配置,今天给大家普及使用docker compose搭建consul集群环境的方法及consul基本知识讲解,感兴趣的朋友一起看看吧2021-06-06Docker网段和内网网段ip冲突导致无法访问网络的两种解决方法
本文主要介绍了Docker网段和内网网段冲突导致无法访问网络的两种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-06-06
最新评论