我在全新安装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
我已经搜索过如何为特定用户添加发布到邮件队列的权限,但无法通过噪音找到解决方案。
答案 0 :(得分:0)
我遇到了类似的问题,并通过RabbitMQ Admin UI(管理员->用户->某些用户->设置权限)添加了权限,从而解决了该问题: 您可以通过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!感谢。