2013-12-20 28 views
0

我試圖添加認證的分片。所以當我嘗試使用此命令時無法將認證分片添加到mongos

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

我收到以下錯誤消息。

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

請分享你的想法嗎?

回答

0

您不清楚您正在使用的已通過身份驗證的用戶以及您有權爲您的會話授予的所有授權。

我建議你提供以下資料來完成這樣一個問題:

  1. 用戶已在蒙戈認證。即用戶正在用於在mongo shell中啓動mongo會話或任何db.auth(..)。

  2. db.isMaster()確認您已連接到適當的mongos。以下的即在蒙戈殼輸出:

 

     db.isMaster() 

  1. 此用戶在管理/配置數據庫即以下的在蒙戈殼輸出分配的角色(通​​過更換用戶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/找到各種操作的詳細權限/角色要求。