mongodb使用用户名密码登录

之前项目连接的Mongodb都是空口令的,即没有用户名和密码就能直接连接上,然后突然接到一个需求,需要用户名密码登录,空口令不安全,以下是我的修改方案以后遇到的问题:

将原来的mongo url为:mongodb://xx.xx.xxx.xxx:xxxxx/dbName

改为:mongodb://userName:password@xx.xx.xxx.xxx:xxxx/dbName

同时在mongo服务器中将dbName这个数据库设置了用户名(userName)和密码(password)

但是在项目执行的时候报了

not authorized on test to execute command mongo这个错,即及时给dbName分配了用户名密码但是还是没有权限执行先关操作

然后就参考了下面一个博主的文章并且解决了这个问题:

http://www.voidcn.com/article/p-stetasvk-bhr.html

主要步骤是:

在mongo中,先切换到admin用户,然后执行命令创建一个角色:

db.createRole({role:'sysadmin',roles:[],privileges:[{resource:{anyResource:true},actions:['anyAction']}]})

接着再切换到当前所需使用的dbName数据库,执行命令新建一个用户,使用这个角色,注意,这个角色的db是admin:

db.createUser({user:'abc', pwd:'123',roles:[{role: 'sysadmin',db:'admin'}]}) 

 

再次运行代码,代码报错消失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值