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

JAVA herman 708浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:codedq,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:codedq,之前的微信号好友位已满,备注:返现
饿了么大量招人,我内推!Java 方向!薪资不设上限,工作年龄不限!工作地点限魔都,可电话面试!简历,发我微信:codedq
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

结合我前面的这篇文章 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)!可加作者微信号1:xmtxtt(5000人已满),微信号2:xttblog(5000人已满),微信号3:codedq(超3800)。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

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