在环境上的createUser()之后出现了一些问题。
也许是对分片群集有些误解。
所以。
我已经使用管理员用户登录MongoS并运行该语句以创建用户
use mydatabase
db.createUser(
{
user: "myreaduser",
pwd: "password",
roles: [{role: "read", db: "mydatabase"}]
}
)
此后,我在此用户上成功登录了MongoS。
我可以将用户视为管理员,例如运行db.getUser(“ myreaduser”)。
但是我的问题是关于mongod的,我无法在mongod上用该用户登录。
E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1461:20
@(auth):6:1
@(auth):1:2
exception: login failed
我检查了该用户是否是在mongod上创建的,但不是。
根据我的理解,应该创建它,因为我使用mongoS在集群中运行了该语句。
对mongo cluster的这种理解是错误的吗? 那么,我是否必须在mongoS和mongod中创建用户?
答案 0 :(得分:0)
欢迎光临!
那么,我必须在mongoS和mongod中创建用户吗?
正确!这些是完全独立的数据库用户。
用于通过mongos连接的数据库用户存储在admin database user of the config server中。相比之下,Shard Local Users是直接在分片本身上创建的,并且对于分片是本地的。