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

标签 rabbitmq message-queue

我已经在全新安装的 RabbitMQ 上设置了一个非常基本的队列“test_queue”,并创建了一个基本的非管理员用户“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}

我收到以下错误:

*** Access refused: /api/exchanges/%2F/amq.default/publish

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

最佳答案

我有一个类似的问题并通过 RabbitMQ 管理 UI 添加权限解决了它(管理->用户->一些用户->设置权限): enter image description here 您可以通过 CLI 将管理界面作为插件启用:

rabbitmq-plugins enable rabbitmq_management

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

关于发布消息时 RabbitMQ 访问被拒绝 - 如何授予用户对特定队列的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924899/

相关文章:

java - 使用大量 CPU 的 spring-rabbit 客户端

c# - BasicPublish() 的可靠性如何?

node.js - amqp.connect 无法永远保持连接事件

python - Python + Twisted 中的消息队列代理

jms - RabbitMq : Create queue dynamically

java - 如何配置 RabbitMQ 为多个消费者平等地提供多个队列

rabbitmq - 如何为django-celery设置后端。我设置了CELERY_RESULT_BACKEND,但无法识别

windows - 在 Windows 服务器上设置 RabbitMQ 集群

java - 消息队列性能低下

rabbitmq - RabbitMQ 中的主题交换与直接交换