gpt4 book ai didi

security - 无法使用 MongoDB super 用户从终端连接到其他数据库

转载 作者:可可西里 更新时间:2023-11-01 09:13:11 26 4
gpt4 key购买 nike

我在我的管理数据库中定义了一个 super 用户:

$ mongo admin -u superuser -p 1234
MongoDB shell version: 2.4.6
connecting to: admin
> db.system.users.findOne()
{
"_id" : ObjectId("52a9a8bd2db854b07d3960f1"),
"user" : "superuser",
"pwd" : "8c246ca972a74c8049b79771df9b718b",
"roles" : [
"userAdminAnyDatabase",
"dbAdminAnyDatabase",
"clusterAdmin",
"readWriteAnyDatabase"
]
}

但是现在我不能用这个用户连接到另一个数据库:

$ mongo mono -u superuser -p 1234
MongoDB shell version: 2.4.6
connecting to: mono
Thu Dec 12 13:22:42.100 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
exception: login failed

这是已知功能/限制还是我做错了什么?

最佳答案

经过身份验证的 mongo 是一个非常棘手的问题。即使您的 super 用户本质上基本上是无所不能的[“userAdminAnyDatabase”、“dbAdminAnyDatabase”、“clusterAdmin”、“readWriteAnyDatabase”],如果您按照 http://docs.mongodb.org/manual/tutorial/enable-authentication/ 进行设置,他的 system.user 帐户仍然基于“admin”数据库.这意味着您必须先登录到“管理员”,然后您才能按自己的方式“使用数据库”。

$ mongo mono -u superuser -p 1234 admin
MongoDB shell version: 2.4.6
connecting to: admin
myReplSet:PRIMARY> use mono

或者,我怀疑但还没有测试过您可以将您的 super 用户放入“测试”数据库而不是“管理员”,这是默认情况下 shell 登陆您的地方。那会让你离开 mongo 命令行的“管理员”,但现在你已经在不同的地方维护了你的用户。岩石。艰难的地方。

关于security - 无法使用 MongoDB super 用户从终端连接到其他数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com