RabbitMQ 用户权限格式

问题描述 投票:0回答:2

我正在尝试使用

rabbitmqctl
在 RabbitMQ 中配置用户权限。 RabbitMQ 文档 http://www.rabbitmq.com/man/rabbitmqctl.1.man.html 给出了设置配置、写入和读取权限的基本示例:

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

但没有给出任何更详细的例子。 我已经看过有关此主题的几篇文章,但没有找到我的具体问题的答案。

第一个问题:是否需要同时授予用户可写入的交换器和队列的权限,或者仅授予交换器? 同样对于读取来说,指定队列就足够了吗? 该文档仅讨论授予对“资源”的访问权限。

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

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

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

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

第四个问题:虚拟主机名称所需的语法是什么? 引用的手册页上的其他示例不使用前导斜杠,如

rabbitmqctl add_vhost test

虚拟主机名称是否以某种方式结构化,或者斜杠只是名称中的另一个字符?

感谢您的建议!

rabbitmq amqp
2个回答
8
投票

我遇到了同样的问题,但经过一些简单的实验后,我得出了以下结论:

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

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

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


0
投票

https://regexr.com/ RegExr 是一个用于学习、构建和测试正则表达式 (RegEx / RegExp) 的在线工具。

© www.soinside.com 2019 - 2024. All rights reserved.