RabbitMQ用户权限格式

Joh*_*ons 18 amqp rabbitmq

我正在尝试使用RabbitMQ配置用户权限rabbitmqctl.RabbitMQ文档http://www.rabbitmq.com/man/rabbitmqctl.1.man.html提供了设置配置,写入和读取权限的基本示例:

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"
Run Code Online (Sandbox Code Playgroud)

但没有提供更详细的例子.我已经看了几个关于这个主题的帖子,但没有找到我特定问题的答案.

第一个问题:是否有必要为用户可以写入的交换和队列授予权限,还是只为交换机授予权限?同样,对于阅读,是否足以指定队列?该文档仅讨论授予对"资源"的访问权限.

第二个问题:上面的示例使用插入符号来标记资源名称的开头.如果我省略这个,只使用"tonyg - .*",是否允许指定的文本出现在资源名称的任何位置?同样,如果我想指定整个资源名称,我必须用^和$括起来,如"^ myqueue $"?

第三个问题:假设我想为给定的权限指定多个模式.我可以用逗号分隔模式,例如

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*,^test-.*" ".*" ".*"
Run Code Online (Sandbox Code Playgroud)

这是正确的语法吗?如果不是,那是什么?

第四个问题:vhost名称的必需语法是什么?引用的手册页中的其他示例不使用前导斜杠,如

rabbitmqctl add_vhost test
Run Code Online (Sandbox Code Playgroud)

vhost名称是以某种方式构造的,还是斜杠只是名称中的另一个字符?

谢谢你的任何建议!

z90*_*tor 7

我遇到了同样的问题,但经过一些简单的实验,我想出了以下内容:

我首先添加了一个名为"/ ASX"的虚拟主机,然后使用以下格式成功添加了"访客"用户:

rabbitmqctl set_permissions -p /ASX guest ".*" ".*" "."
Setting permissions for user "guest" in vhost "/ASX" ...
...done.
Run Code Online (Sandbox Code Playgroud)

我还必须重新启动rabbitmq-server才能使更改生效.