2013-04-29 82 views
12

我試圖用rabbitmqctl在RabbitMQ中配置用戶權限。該文件的RabbitMQ給人http://www.rabbitmq.com/man/rabbitmqctl.1.man.html設置配置,寫的一個基本的例子,和讀權限:RabbitMQ用戶權限格式

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*" 

,但是沒有得到任何更詳細的例子。我已經看過這個主題的幾個帖子,但沒有找到我的具體問題的答案。

第一個問題:是否需要授予用戶可以寫入的交換和隊列的權限,還是僅需要交換?同樣的閱讀,是否足以指定隊列?文檔只是談論授予對「資源」的訪問權限。

第二個問題:上面的示例使用插入符來標記資源名稱的開頭。如果我忽略這個,只使用「tonyg - 。*」,是否允許指定的文本出現在資源名稱的任何地方?同樣,如果我想指定整個資源名稱,我必須用^和$括起來,如「^ myqueue $」中嗎?

第三個問題:假設我想爲給定權限指定多個模式。我可以用逗號分隔圖案嗎?

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*,^test-.*" ".*" ".*" 

這是否正確?如果不是,那是什麼?

第四個問題:vhost名稱的必需語法是什麼?引用手冊頁不使用前導斜槓上的其他例子,如

rabbitmqctl add_vhost test 

以某種方式構造的虛擬主機的名字,或者說是斜線只是另一個角色的名字嗎?

感謝您的任何建議!

+0

你有沒有發現一些有趣的事情? 我想要類似的東西。基本上,「備忘單」將有助於查看如何授予創建具有特定名稱或類似名稱的隊列的權限 – Lukino 2014-10-21 11:51:25

+0

@John對此有何幫助?我認爲很多人都在考慮給予隊列閱讀許可,並且從現有的文檔中很難知道。 – Gaurav 2015-05-14 06:29:24

回答

4

我打的是同樣的問題,但一些簡單的實驗後,我想出了以下內容:

我添加了一個名爲「/ ASX」的虛擬主機,然後再添加「guest」用戶到它成功地使用以下格式:

rabbitmqctl set_permissions -p /ASX guest ".*" ".*" "." 
Setting permissions for user "guest" in vhost "/ASX" ... 
...done. 

我還必須重新啓動rabbitmq-server以使更改生效。