每年培训输出1000+合格IT工程师
培训影响全国各大知名IT企业和部门

Docker 安装运行MongoDB

通过docker安装mongodb

一、拉取官方的镜像

 docker pull mongo

二、运行container

docker run --name mongo-master -p 27017:27017 -v /root/mongo-docker/db:/data/db -d mongo --auth
默认情况下,mongo数据库没有添加认证约束,为了增强数据库的安全性,我们需要对数据库添加授权认证
在运行mongo容器命令中添加--auth参数
命令说明:
–name:自定义别名
-p 27017:27017 :将容器的27017 端口映射到主机的27017 端口
-v /root/mongo-docker/db:/data/db :将主机中 /root/mongo-docker/db 挂载到容器的 /data/db,作为mongo数据存储目录
–antu:开启密码授权访问

三、创建用户管理员,首先进入mongo容器

docker exec -it  a7e5d4e4ca69  mongo admin

四、创建mongodb的用户


# 进入mongo数据库
mongo
# 首先切换到admin数据库下
use admin;
# 创建一个用户admin, 密码是admin
# 此用户即为管理员
# user: 用户名 
# pwd: 密码明文 
# role: 用户角色 db: 该用户将创建到哪个数据库中
db.createUser({
    user: 'admin',
    pwd: 'admin123',
    roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]
});
# 测试下是否正确
db.auth("admin", "admin123");
1 # 返回1表示正确
# 退出
exit;
role角色参数参考:

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root:只在admin数据库中可用。超级账号,超级权限

五、管理员已经创建成功后,

我们需要重新连接mongo数据库,用管理员进行登录,并为目标数据库创建目标用户,先退出容器,从新进入容器。

docker exec -it mongo-master mongo admin

六、授权admin登录

db.auth("admin", "admin");

七、创建访问指定数据库的用户

假设我们为 test 库创建一个用户,用户名为 test,密码为 test>

use test;
switched to db test

db.createUser({ user: 'test', pwd:'test', roles: [ {role:"readWrite",db:"student"}]});
Successfully added user: {
"user" : "test",
"roles" : [
    {
        "role" : "readWrite",
        "db" : "student"
    }
]
}
db.auth("test","test");
1

创建成功并exit退出,test 用户可以对(也只能对) student 库进行操作

注:

admin的作用是管理用户,MongoDB下的每个数据库,用户都被它管理,除此外,它基本没什么更多权限做其他事情
MongoDB没有通常意义的超级用户的概念,test库的授权用户只能被admin创建,而admin只能登陆admin数据库

赞(1) 打赏
未经允许不得转载:徐礼文的技术博客 » Docker 安装运行MongoDB
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏