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

ds97pgxw  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(2)|浏览(252)

我已经在RabbitMQ的新安装上设置了一个非常基本的队列'test_query',并创建了一个基本的非管理员用户'user'(我已经赋予了与管理员帐户相同的虚拟主机访问权限)。
当我通过以下方式在命令行上发送测试消息时:

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/%2 F/amq.default/publish

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

9udxz4iz

9udxz4iz1#

我也遇到了类似的问题,通过RabbitMQ管理员界面添加权限(管理员->用户->一些用户->设置权限)解决了这个问题:x1c 0d1x您可以通过CLI将Admin UI作为插件启用:

rabbitmq-plugins enable rabbitmq_management

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

wdebmtf2

wdebmtf22#

我用site:rabbitmq.com permission搜索了谷歌,这篇文章是第一篇:https://www.rabbitmq.com/access-control.html
在“网络如何工作”部分的结尾,您将被定向到rabbitmqctl man page
在该页面中,您将找到set_permissions命令的文档。这就是你需要使用的。
如果您想打开一个pull request来改进文档,使找到这个解决方案更容易,我们欢迎它here!谢谢.

相关问题