我在全新安装的 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}
我收到以下错误:
*** 访问被拒绝:/api/exchanges/%2F/amq.default/publish
我搜索了如何为特定用户添加发布到消息队列的权限,但无法通过噪音找到解决方案。
我遇到了类似的问题,并通过通过 RabbitMQ 管理 UI 添加权限来解决它(管理员->用户->某些用户->设置权限): 您可以通过 CLI 将管理 UI 作为插件启用:
rabbitmq-plugins enable rabbitmq_management
要访问它,您还需要创建一些登录凭据。 更多详情:https://www.rabbitmq.com/management.html#getting-started
我用
site:rabbitmq.com permission
搜索了 Google,第一个点击的是这个文档:https://www.rabbitmq.com/access-control.html
在 “权限如何工作” 部分的末尾,您将被引导至
rabbitmqctl
手册页
set_permissions
命令的文档。这就是你需要使用的。
如果您想提出拉取请求来改进文档,以便更轻松地找到此解决方案,我们将欢迎您在这里!谢谢。