【发布时间】:2019-12-17 11:01:05
【问题描述】:
我正在尝试允许 mongo 用户连接到 mongo 数据库,但无论我赋予用户什么角色,身份验证都会失败,并在日志中显示以下错误:
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的内容
# 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
这是我创建用户的方式:
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。我不知道为什么这会起作用,但直接连接不会。
【问题讨论】:
标签: mongodb