代码先锋网 代码片段及技术文章聚合

基于docker的mongo-db开启授权密码访问

技术标签: mongodb  auth

Docker版MongoDB的安装 url:https://www.jianshu.com/p/2181b2e27021

Docker Hub上关于mongo镜像的详细说明

基于docker安装mongo比较简单,但是如果给mongo开启密码访问,就有点复杂。 

参考:https://blog.csdn.net/diyiday/article/details/77870004

 

 1:docker run --name mongodb -p 27017:27017 -v $PWD/db:/data/db -d daocloud.io/mongo
 2:docker run -itd --privileged --name="$1"  -p "$2":27017 -v /alex/data/"$1"/conf:/data/configdb -v /alex/data/"$1"/data:/var/log/mongodb/  docker.io/mongo --auth
mongo开启校验
- 2.1:docker-enter mongo实例里面,(docker exec -it mongo bash 表示bash方式进入mongo容器)
- 2.2:use admin(输入命令进入admin数据库)
- 2.3:db.createUser({ user: 'mongo-admin', pwd: 'mongo-password', roles: [ { role: "root", db: "admin" } ] });


具体操作如下:

1、拉取docker-mongo官方镜像
 docker pull mongo
1
2、基于mongo3.x部署容器
docker run --name mongo -p 27017:27017 -v /data/database/mongotest:/data -d mongo:3.2.14 --auth

–antu的参数的意义是开启密码授权访问。

[root@centos ~]# docker run --name mongo4 -p 27019:27017 -v /data/database/mongotest:/data -d mongo:3.2.14 --auth
7ef3e635091f0671bad3ac9505cafc0444d2ac41dbfe1b2e0bdc149de3bd1fff

3、开启密码访问验证。
开启密码访问验证,需要开启mongo的admin数据库,切换到mongo的admin数据库 
直接使用docker命令进入:

docker exec -it mongo bash
1
docker exec -it mongo bash 表示bash方式进入mongo容器。

进入后输入mongo命令进入mongo数据库

root@1c46563d7d36:/# mongo
MongoDB shell version: 3.2.14
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user


输入命令进入admin数据库

use admin
1
之后创建一个用户

db.createUser({ 
    user: 'mongo-admin', 
    pwd: 'mongo-password', 
    roles: [ { role: "root", db: "admin" } ] });
 db.auth("mongo-admin","mongo-password")
role后面的参数参考,可根据时间情况选择:

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

use test
db.createUser({ user: 'test', pwd:'test', roles: [ {role:"readWrite",db:"testdb"}]});
db.auth("test","test")
执行之后,为testdb数据库创建了密码访问。 
开启了用户名和密码访问之后,mongo数据可以匿名连接,但是无法操作数据库。

版权声明:本文为qq_32447321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32447321/article/details/88360732

智能推荐

开启docker远程访问

标题开启docker远程访问 输入vi /usr/lib/systemd/system/docker.service 修改后保存退出 执行以下命令 输入 netstat -anp | grep 2375 可以看到2375是被监听到了 这样就开启远程访问了...

Docker开启http访问

背景    docker 开启http访问的目的是可以和idea进行打包配合,默认是不开启的   解决方案    修改以ExecStart为开头的行 ,修改为                ...

开启Docker远程访问

 打开docker.service 修改ExecStart 保存并退出 重新载入配置+重启...

docker开启远程访问

Docker - Docker开启远程访问 Docker守护进程套接字 Docker守护进程可以通过三种不同类型的套接字监听Docker Engine API请求:unix、tcp和fd。 默认情况下,在/var/run/docker.sock处创建一个unix域套接字(或IPC套接字),需要root权限或docker组成员身份。 如果需要远程访问Docker守护进程,则需要启用tcp套接字。请注...

Docker开启http访问

1、编辑docker宿主机文件/lib/systemd/system/docker.service 2、修改以ExecStart为开头的行 ,修改为: 其中0.0.0.0.0和2375可以修改为自己想要的IP和端口,例如IP可以修改为宿主机的IP,端口可以修改成2379 注意:因为刚接触docker,我都是参考网上的操作,所以不太清楚随意修改IP和端口是否会造成一些不可知危害 3、保存修改后的文件...

猜你喜欢

Docker开启远程访问

Docker开启远程访问 查找docker.service 修改docker.service 重新载入Docker服务 重启docker服务 查看端口是否开启...

Docker远程API未授权访问导致的Docker逃逸

Docker远程API未授权访问导致的Docker逃逸 前言 是给社团学弟学妹们一次讲课的一次md。 服务器 https://cloud.tencent.com/act/campus 当然想要复现学习这个的话,本地也足够了,可以在linux虚拟机中装docker来复现即可。 Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker...

在线开启mongodb分片集群的密码认证

文章目录 概览 创建keyfile**文件 配置分片集群管理账号和客户端账号 1. 创建管理账号 2. 创建应用程序使用的账号 3. 客户端程序的配置文件进行更改,使用用户密码的连接方式。 更改mongos实例配置,使用密码身份认证 1. 创建新的mongos配置文件 2. 重启mongos服务(使用新的配置文件) 配置config server副本集进行密码认证 1. 创建新的配置文件 重启co...

Linux开启mongodb远程访问

bin中添加mongodb.conf  文件 文件内容 说明 bind_ip  客户端限制去掉 auth  开启密码验证 fork 开启进程守护   启动脚本 ./mongod  -f mongodb.conf   启动windows页面,可不启动 ./mongod --dbpath=/data/db --rest 添加管理员用户 验证 ...

Ubuntu开启Mongodb 外网访问

正常情况下,mongodb 只可以在本电脑也就是127.0.0.1访问 步骤也是很简单: 将里面的bind 127.0.0.1 注释掉就ok了! 如果不起作用,改成0.0.0.0 转自: https://blog.csdn.net/adley_app/article/details/78935412...