美文网首页
mongoDB 设置外网连接

mongoDB 设置外网连接

作者: 山高路远_海深不蓝 | 来源:发表于2019-07-23 18:07 被阅读0次

环境清单

  • 阿里云Centos7
  • mongoDB 4.0.10
  • 使用的是yum安装

相关文件位置

  • 配置文件位置

/etc/mongod.conf

  • log文件位置

/var/log/mongodb/mongod.log

  • sock文件位置

/tmp/mongodb-27017.sock

设置单个root用户

  • step1 进入mongo,创建root用户
> mongo
> use admin
> db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})

验证 > db.auth("admin", "123456")

  • step2 开启用户验证

打开配置文件 # vi /etc/mongod.conf

添加:

security:
  authorization: enabled
  • 重启服务

退出mongoDB > exit

重启服务 # sudo service mongod start

如果出现失败,删除sock文件后再次重启: # rm -f /tmp/mongodb-27017.sock

开放端口

此处防火墙已开启,没有开启的先开启防火墙
CentOS7 防火墙设置

  • 开放本机端口: # firewall-cmd --zone=public --add-port=27017/tcp --permanent

  • 设置阿里云服务器端口

控制台>点击主机>安全>防火墙>添加规则>自定义 TCP 27017>

连接数据库

工具使用的是Robo 3T

file>connet>create>connection

image.png

Authentication

image.png

为指定的数据库设置用户

> mongo
> use admin
> db.auth("admin", '123456')
> db.createUser( {user: "test",pwd: "123456",roles: [ { role: "read", db: "数据库名称" } ]})

注意几点:

  • 1.创建用户必须在admin数据库下
  • 2.已开启用户验证的话得先验证才能操作
  • 3.role字段为用户角色设置,参照下面得mongoDB 用户角色
  • 4.单独为某个数据库设置用户后可以在Robo 3T 中单独连接

mongoDB 用户角色

  • 1.数据库用户角色:read、readWrite;
  • 2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
  • 3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  • 4.备份恢复角色:backup、restore;
  • 5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  • 6.超级用户角色:root

这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限

相关文章

网友评论

      本文标题:mongoDB 设置外网连接

      本文链接:https://www.haomeiwen.com/subject/dvpalctx.html