MongoDB连接与开启用户验证

下载Robo 3T

这里用Robo 3T做为MongoDB的客户端来连接,Robo 3T即Robomongo,去官网https://robomongo.org/download 下载适合自己的版本:
在这里插入图片描述这里下载的是zip压缩文件免安装版,下载完成,解压到合适的目录,双击robo3t.exe即可打开:
在这里插入图片描述在这里插入图片描述

通过Robo 3T连接

如下图,新建一个连接并保存:
在这里插入图片描述点击Connect开始连接:
在这里插入图片描述
连接成功:
在这里插入图片描述

权限设置

MongoDB 安装完成以后,默认只允许本地连接,同时不需要使用任何账号密码就可以直接连接MongoDB,这样非常不安全。这里给Mongo设置一个管理员用户和一个数据库用户:
管理员用户:具有最高权限
数据库用户:只有某个数据库的操作的所有权限

配置mongo.conf

之前安装参考:https://blog.csdn.net/bbc2005/article/details/87900841,在mongo.conf中开启用户认证:

# 数据库文件路径
dbpath=E:\mongodb-win32-x86_64-2008plus-ssl-4.0.5\data
# 日志文件
logpath=E:\mongodb-win32-x86_64-2008plus-ssl-4.0.5\logs\mongo.log
# 日志采用追加模式,配置后mongodb日志会追加到现有的日志文件,不会重新创建一个新文件
logappend=true
# 启用日志文件,默认启用
journal=true
# 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为 false
quiet=true
# 端口号 默认为 27017
port=27017
# 开启用户认证
auth=true

重启mongodb服务后,通过Robo 3T不可以连接了:
在这里插入图片描述
但是切换到mongodb的安装目录下的bin文件夹下打开命令窗口,通过命令还是可以连接:
在这里插入图片描述
这是因为此时MongoDB的库里还没有任何用户,开启了用户认证,用户还是可以通过localhost界面进入MongoDB进行用户设置,否则的话整个MongoDB就完全没法访问了也不能正常使用了。
不过执行命令的会报错,因为当前连接没有经过用户认证:
在这里插入图片描述

新增管理员用户

通过命令use admin切换到admin数据库,输入命令: db.createUser({user:“admin”,pwd:“password”,roles:[“root”]}),创建具有最高权限的管理员用户:
在这里插入图片描述
现在用户虽然是添加成功了,但如果不用户认证直接执行命令的话,还是会报错:
在这里插入图片描述
输入 db.auth(“admin”,“password”)进行用户认证,如图:
在这里插入图片描述
此时,输入 show users显示用户信息,如图:
在这里插入图片描述
输入 show dbs显示数据库信息,如图:
在这里插入图片描述
此时如下图在Robo 3T设置登录信息后,可以登录:
在这里插入图片描述在这里插入图片描述

新增数据库用户

通过命令use test切换到test数据库,输入命令: db.createUser({user:“test”,pwd:“test”,roles:[{role:“dbOwner”,db:“test”}]}),创建数据库用户:
在这里插入图片描述
此时,因为当前窗口还是用admin做的用户认证,所以分别输入 show users会显示用户信息,输入 show dbs会显示数据库信息,如图:
在这里插入图片描述
此时,输入 db.auth(“test”,“test”) 用test用户认证的话,再输入show usersshow dbs会报错:too many users are authenticated,如图:
在这里插入图片描述
关闭当前窗口,重开一个命令窗口连接,认证后可以看到当前命令返回的信息:
在这里插入图片描述
此时由于test数据库还没有实际创建,所以show dbs会显示空信息。

在Robo 3T新建一个test连接,设置登录信息后,可以登录:

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值