首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb找不到用户" user @database“

Mongodb找不到用户" user @database“
EN

Stack Overflow用户
提问于 2019-08-09 17:08:57
回答 2查看 12K关注 0票数 2

我试图允许mongo用户连接到mongo数据库,但是无论我给用户分配了什么角色,身份验证都会失败,因为日志中有此错误:

代码语言:javascript
复制
2019-08-09T17:03:05.486+0000 I ACCESS   [conn13] SCRAM-SHA-1 authentication failed for username on dbname from client 127.0.0.1:38790 ; UserNotFound: Could not find user username@dbname
2019-08-09T17:03:05.488+0000 I NETWORK  [conn13] end connection 127.0.0.1:38790 (0 connections now open)

以下是/etc/mongodb.conf的内容

代码语言:javascript
复制
# mongodb.conf

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 0.0.0.0
port = 27017

# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true

auth=true

下面是我创建用户的方式:

代码语言:javascript
复制
db.createUser({
  user: "username",
  pwd: "secret",
  roles: [
    { role: "userAdmin", db: "dbname" },
    { role: "dbAdmin",   db: "dbname" },
    { role: "readWrite", db: "dbname" }
  ]
});

我还将dbOwner角色授予了数据库dbname上的用户。这里发生了什么事?如果用户是所有者并具有读写权限,为什么不能连接到数据库呢?我必须创建一个名为username@dbname的用户吗?

编辑:刚刚尝试添加一个用户名为username@dbname的用户,但该用户也无法连接。

我还可以用相同的命令连接到mongo,最后去掉/dbname,然后运行use dbname。我不知道为什么会起作用,但是直接连接就不行了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-09 20:00:27

问题是数据库用户是在admin数据库而不是dbname上创建的。

从连接字符串/ mongo /等中省略/dbname意味着连接字符串将对admin数据库进行身份验证。引用文档的话:

如果未指定'/ database‘且连接字符串包含凭据,则驱动程序将对管理数据库进行身份验证

(https://docs.mongodb.com/manual/reference/connection-string/#components)。

如果定义了/dbname,那么连接字符串将根据dbname进行身份验证,除非将authSource参数配置为指定用户所在的数据库。

可以通过将authSource=admin添加到连接字符串或将--authenticationDatabase admin添加到mongo shell命令来确认是否存在这种情况。

或者,您可以使用db.getUsers()查看创建用户的数据库。

票数 19
EN

Stack Overflow用户

发布于 2022-01-15 08:42:31

我面临同样的错误,我的解决方案是将?authSource=admin添加到连接字符串的末尾:

代码语言:javascript
复制
MONGODB_URI="mongodb://username:password@localhost:27017/db_name?authSource=admin"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57434521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档