【问题标题】:Unable to add authenticated shard to mongos无法将经过身份验证的分片添加到 mongos
【发布时间】:2013-12-20 06:03:22
【问题描述】:

我正在尝试添加一个经过身份验证的分片。所以当我尝试使用这个命令时

mongos> sh.addShard("xxx.xxx.xxx:27018")

我收到以下错误。

{
        "ok" : 0,
        "errmsg" : "failed listing xxx.xxx.xxx:27018's 
                       databases:{ ok: 0.0, errmsg: \"unauthorized\" }"
}

请分享你的想法?

【问题讨论】:

    标签: mongodb sharding


    【解决方案1】:

    不清楚您使用的是哪个经过身份验证的用户,以及它为您的会话有权获得的所有授权。

    我建议您提供以下信息来完成问题:

    1. 您已在 mongo 中进行身份验证的用户。即用户用于启动 mongo 会话或之后在 mongo shell 中的任何 db.auth(..)。

    2. db.isMaster() 以确认您已连接到适当的 mongos。即在以下的 mongo shell 输出中:

    db.isMaster()
    1. 在 admin/config 数据库中为该用户分配的角色,即在以下的 mongo shell 输出中(通过替换用户 ID):
    
      use admin
      db.system.users.find({user: "ReplaceYourUserIdHere"}).pretty()
    
      use config
      db.system.users.find({user: "ReplaceYourUserIdHere"}).pretty()
    

    这应该有助于确定您可能缺少哪些角色以及 sh.addShard 操作所需的角色。

    有些操作需要特定的权限,sh.addShard 就是其中之一。您可以在http://docs.mongodb.org/manual/reference/user-privileges/ 找到各种操作的详细权限/角色要求。

    【讨论】:

      猜你喜欢
      • 2017-12-27
      • 1970-01-01
      • 2018-08-18
      • 2013-08-20
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 2012-09-06
      • 2021-12-03
      相关资源
      最近更新 更多