在分片群集上创建用户

时间:2019-07-19 00:59:40

标签: mongodb

在环境上的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中创建用户?

1 个答案:

答案 0 :(得分:0)

欢迎光临!

  

那么,我必须在mongoS和mongod中创建用户吗?

正确!这些是完全独立的数据库用户。

用于通过mongos连接的数据库用户存储在admin database user of the config server中。相比之下,Shard Local Users是直接在分片本身上创建的,并且对于分片是本地的。

相关问题