Формат разрешения пользователя RabbitMQ

Я пытаюсь настроить права пользователя в RabbitMQ с помощью rabbitmqctl. Документация RabbitMQ http://www.rabbitmq.com/man/rabbitmqctl.1.man.html дает базовый пример настройки разрешений configure, write и read:

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

но не дает более подробных примеров. Я просмотрел несколько сообщений по этой теме, но не нашел ответов на мои конкретные вопросы.

Первый вопрос: необходимо ли предоставлять разрешения как для обмена, так и для очередей, на которые пользователь может писать, или только на обмены? Точно так же для чтения достаточно ли указывать очереди? В документации просто говорится о предоставлении доступа к "ресурсам".

Второй вопрос: в приведенном выше примере используется каретка, чтобы отметить начало имени ресурса. Если я опустил это и просто использовал "tonyg -. *", Это позволило бы указать указанный текст в любом месте имени ресурса? Аналогично, если бы я хотел указать имя всего ресурса, я должен скопировать его с помощью ^ и $, как в "^ myqueue $"?

Третий вопрос: Скажем, я хочу указать несколько шаблонов для данного разрешения. Могу ли я просто разделить шаблоны запятыми, что-то вроде

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

Является ли это правильным синтаксисом для этого? Если нет, то что?

Четвертый вопрос: Каков требуемый синтаксис имен vhost? Другие примеры на цитируемой странице руководства не используют ведущую косую черту, как в

rabbitmqctl add_vhost test

Являются ли имена vhost некорректно структурированными, или это косая черта только другого символа в имени?

Спасибо за любые предложения!

Ответ 1

Я попал в ту же проблему, но после некоторых простых экспериментов я придумал следующее:

Сначала я добавил vhost с именем "/ASX", а затем добавил "гостя" к нему успешно, используя следующий формат:

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

Мне также пришлось перезапустить сервер rabbitmq, чтобы изменения вступили в силу.