无法将经过身份验证的分片添加到mongos

时间:2013-12-20 06:03:22

标签: mongodb sharding

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

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

我收到以下错误。

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

请分享您的想法?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您使用的是经过身份验证的用户以及您的会话有权获得的所有授权。

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

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

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

  3. 
          db.isMaster()
    
    
    1. 在admin / config数据库中为此用户分配角色,即在以下的mongo shell输出中(通过替换用户ID):
    2. 
        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/找到各种操作的详细权限/角色要求。