mongodb如何开启远程连接,创建数据库用户

 0 0条评论

操作系统:centos8.0

以下是我亲身实战而来,建议根据我的步骤一步步骤。

第一步,创建mongodb管理员账户

mongo命令终端后,进入admin数据库,创建一个权限为root的管理员账户,因为当配置文件中authorization: enabled后,你将不能匿名登录,以后如果创建其他用户,就用此root账户登录。

use admin
db.createUser({user:"name",pwd:"password",roles:[{"role":"root","db":"admin"}]})

第二步,创建数据库账户

进入你想创建用户的数据库,此处非常重要,必须要先进入相关的数据库,如果在admin数据下创建用户是无法访问的,哪怕用户权限设置成userAdminAnyDatabase也无效

mongo
use shuanghei

创建用户的命令如下

db.createUser({user:"name",pwd:"password",roles:[{"role":"readWrite","db":"shuanghei"}]})

这里role使用readWrite足够了,关于role有很多,readWrite、readAnyDatabase、userAdminAnyDatabase、root等等我也没有仔细去研究,可以去参考官网。

db后面的数据库,必须是当前use的数据库,另外给个小贴士,密码中不要有@符号,否则node链接的时候会出问题,因为无法判断@是密码还是关键字。

创建完毕后,可以使用以下命令,查看该数据库下有多少用户。

show users


如果是多个数据库,可以重复第二步,进入不同数据再创建帐号。

三,开启系统防火墙

如果阿里云服务器,先去服务器放行27017端口,这是mongodb默认端口。


四,修改mongodb配置文件

主要修改两点

1,bindIp改成0.0.0.0,网上也有说注释这行也行,经我测试不可行,必须改成0.0.0.0

2,authorization改成enabled

# network interfaces
net:
  port: 27017
#	bindIp:127.0.0.1
  bindIp: 0.0.0.0
 
#operationProfiling:
#replication:
#    replSetName: bt_main   
security:
#  authorization: disabled
  authorization: enabled
  javascriptEnabled: false

之后你的mongodb就不能匿名访问了,必须用刚才root账户访问,进行用户相关操作,登录也很简单,进入终端后:

db.auth("name","password")

删除用户名也很简单,同样要先进入相关的数据库,执行以下命令即可

db.dropUser('name')

五,node链接

至此服务端配置完毕,使用mongoose修改一下连接字符串即可,记住,这里的帐号和密码,是第二步设置的帐号和密码,并非root的帐号密码。

const DB_URL = 'mongodb://name:password@111.111.111.11:27017/shuanghei'

至此顺利链接完毕



本文作者:双黑

版权声明:本站文章欢迎链接分享,禁止全文转载!

游客