Mongo 数据库 3.2 身份验证
Mongo DB 3.2 Authentication
我刚刚关注 this guide on setting up Auth with Mongo DB, as well as 将用户设置为管理员。
运行 mongo
> use admin
> show users
打印以下内容:
{
"_id" : "admin.root",
"user" : "root",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
在此之后,我再次 运行 使用 --auth
服务器并使用以下命令:
mongo -u "root" -p "xxx" --authenticationDatabase "admin"
这将打印以下内容:
MongoDB shell version: 3.2.19
connecting to: test
2018-03-29T15:52:32.329+0200 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
@(auth):6:1
@(auth):1:2
exception: login failed
在没有 --auth
参数的情况下尝试 运行 这让我可以正常登录。
--auth
参数还在服务器控制台中提供了以下输出:
I ACCESS [conn1] note: no users configured in admin.system.users, allowing localhost access
但我实际上不确定为什么它没有接收我创建的任何 root/admin 用户。尝试连接 Robo 3T 时,终端打印以下内容:
I NETWORK [initandlisten] connection accepted from xxx:44924 #2 (2 connections now open)
I ACCESS [conn2] SCRAM-SHA-1 authentication failed for root on admin from client xxx ; UserNotFound: Could not find user root@admin
I NETWORK [conn2] end connection xxx:44924 (1 connection now open
OP 的解决方案。
通过关注 this article.
解决了问题
似乎,尽管在连接到服务器时使用了 --auth
,但没有注释掉行 bindIp: 127.0.0.1
并将 authorization: 'enabled'
添加到 security
部分 /etc/mongod.conf
,我只允许访问本地机器——服务器本身。错误消息本来可以措辞更好一些,但这是安全的。我猜。
虽然这是一个非常愚蠢的疏忽,但我之前查看的任何文档都没有涵盖这个问题。
我刚刚关注 this guide on setting up Auth with Mongo DB, as well as
运行 mongo
> use admin
> show users
打印以下内容:
{
"_id" : "admin.root",
"user" : "root",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
在此之后,我再次 运行 使用 --auth
服务器并使用以下命令:
mongo -u "root" -p "xxx" --authenticationDatabase "admin"
这将打印以下内容:
MongoDB shell version: 3.2.19
connecting to: test
2018-03-29T15:52:32.329+0200 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
@(auth):6:1
@(auth):1:2
exception: login failed
在没有 --auth
参数的情况下尝试 运行 这让我可以正常登录。
--auth
参数还在服务器控制台中提供了以下输出:
I ACCESS [conn1] note: no users configured in admin.system.users, allowing localhost access
但我实际上不确定为什么它没有接收我创建的任何 root/admin 用户。尝试连接 Robo 3T 时,终端打印以下内容:
I NETWORK [initandlisten] connection accepted from xxx:44924 #2 (2 connections now open)
I ACCESS [conn2] SCRAM-SHA-1 authentication failed for root on admin from client xxx ; UserNotFound: Could not find user root@admin
I NETWORK [conn2] end connection xxx:44924 (1 connection now open
OP 的解决方案。
通过关注 this article.
解决了问题似乎,尽管在连接到服务器时使用了 --auth
,但没有注释掉行 bindIp: 127.0.0.1
并将 authorization: 'enabled'
添加到 security
部分 /etc/mongod.conf
,我只允许访问本地机器——服务器本身。错误消息本来可以措辞更好一些,但这是安全的。我猜。
虽然这是一个非常愚蠢的疏忽,但我之前查看的任何文档都没有涵盖这个问题。