发布消息时RabbitMQ访问被拒绝 - 如何为特定队列授予用户权限?

时间:2018-04-19 15:30:47

标签: rabbitmq message-queue

我在全新安装RabbitMQ时设置了一个非常基本的队列' test_queue',并创建了一个基本的非管理员用户,'用户' (我给了与管理员帐户相同的虚拟主机访问权限。)

当我通过命令行发送测试消息时:

rabbitmqadmin publish exchange=amq.default routing_key=test_queue payload="hello, world" -u admin -p {admin password}

它运作得很好。但是当我尝试使用基本用户时:

rabbitmqadmin publish exchange=amq.default routing_key=test_queue payload="hello, world" -u user -p {user password}

我收到以下错误:

  

***拒绝访问:/api/exchanges/%2F/amq.default/publish

我已经搜索过如何为特定用户添加发布到邮件队列的权限,但无法通过噪音找到解决方案。

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,并通过RabbitMQ Admin UI(管理员->用户->某些用户->设置权限)添加了权限,从而解决了该问题: enter image description here 您可以通过CLI将管理界面作为插件启用:

rabbitmq-plugins enable rabbitmq_management

要访问它,您还需要创建一些登录凭据。 更多详细信息:https://www.rabbitmq.com/management.html#getting-started

答案 1 :(得分:-2)

RabbitMQ团队监控the rabbitmq-users mailing list,有时只回答StackOverflow上的问题。

我使用Self JOIN搜索了Google,此文档是第一个:https://www.rabbitmq.com/access-control.html

"How Permissions Work"部分的末尾,您将转到rabbitmqctl man page

在该页面中,您将找到set_permissions命令的文档。这就是你需要使用的东西。

如果您想打开拉取请求以改进文档以便更轻松地找到此解决方案,我们欢迎here!感谢。