我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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容器添加密码验证内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

目录无密码验证创建容器需要密码验证创建容器步骤1:创建需要验证的容器步骤2:进入容器内部,进入数据库命令行步骤3:创建root用户与密码步骤4:登录root用户步骤5:通过root用户的权限创建其他用户权限&名称请参考总结首先下载镜像文件
2023-01-04

编程热搜

目录