Java基础、中级、高级、架构面试资料

修复 Error: couldn’t add user: not authorized on oauth to execute command 问题

JAVA herman 6905浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

结合我前面的这篇文章 https://www.xttblog.com/?p=4609,今天在使用 Mongo 的时候又遇到了一个错误。全网搜索了很久,几乎没有答案。不得已,我走了回头路,算是把这个问题给解决了,在这里分享一下,避免更多的人入坑!

具体的异常信息如下所示:

2020-01-08T15:16:32.074+0800 E QUERY [js] uncaught exception: Error: couldn’t add user: not authorized on oauth to execute command { createUser: “xttblog”, pwd: “xxx”, roles: [ “readWrite”, “dbAdmin” ], digestPassword: true, writeConcern: { w: “majority”, wtimeout: 600000.0 }, lsid: { id: UUID(“e4ef2954-26bd-4e38-8c5c-222c417f053b”) }, $db: “oauth” } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1370:11
@(shell):1:1

就是,我在 mongo 中新创建了一个数据库 oauth。然后给这个库创建用户,结果失败了。错误的大致意思是说,无法在没有认证的 oauth 库上执行创建用户的命令。

搜索了很久,没有答案。所以,不得已,我把 mongo 的数据库的配置给停止了。

brew services stop mongodb/brew/mongodb-community

然后修改配置文件。

vi /usr/local/etc/mongod.conf
mongo 关闭认证

最后两行注释掉,然后重启 mongo 的服务。

brew services start mongodb/brew/mongodb-community

重启完成后,我们连接上 mongo,重新创建用户,分配权限。

mongo
use oauth
db.createUser({
	user:'xttblog',
	pwd:'xttblog',
	roles:[
		{role:"readWrite",db:"oauth"},
		{role:"userAdmin",db:"oauth"},
		{role:"dbAdmin",db:"oauth"}
	]
});

如果要一个账号管理两个库,则执行更新命令。

db.updateUser(
	"admin",
	{
		roles:[
			{role:"readWrite",db:"oauth"},
			{role:"userAdmin",db:"oauth"},
			{role:"dbAdmin",db:"oauth"},
			{role:"readWrite",db:"log"},
			{role:"userAdmin",db:"log"},
			{role:"dbAdmin",db:"log"}
		]
	}
);

更新完成后,我们执行 show users 命令就可以看到,当前库的所有用户信息。

mongo show users 查看所有用户信息

创建和修改完用户的权限后,在编辑 vi /usr/local/etc/mongod.conf,开启 Mongo 认证,重启服务。虽然过程复杂,但是总比没有办法好!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 修复 Error: couldn’t add user: not authorized on oauth to execute command 问题