捋明白 RabbitMQ 中的权限系统,再也不用担忧消息发送失败了
复制代码这里有几个参数:[-p vhost]:授予用户访问权限的 vhost 名称,如果不写默认为。user:用户名。conf:用户在哪些资源上拥有可配置权限(支持正则表达式)。write:用户在哪些资源上拥有写权限(支持正则表达式)。read:用户在哪些资源上拥有读权限(支持正则表达式)。至于可配置权限能干嘛,写权限能干嘛,读权限能干嘛,大家可以参考第二小节,这里不再赘述。松哥来举一个简单的例子
rabbitmqctl set_permissions [-p vhosts] {user} {conf} {write} {read}
复制代码
这里有几个参数:
-
[-p vhost]:授予用户访问权限的 vhost 名称,如果不写默认为
/
。 -
user:用户名。
-
conf:用户在哪些资源上拥有可配置权限(支持正则表达式)。
-
write:用户在哪些资源上拥有写权限(支持正则表达式)。
-
read:用户在哪些资源上拥有读权限(支持正则表达式)。
至于可配置权限能干嘛,写权限能干嘛,读权限能干嘛,大家可以参考第二小节,这里不再赘述。
松哥来举一个简单的例子。
假设我们有一个名为 zhangsan
的用户,我们希望该用户在 myvh 虚拟主机下具备所有权限,那么我们的操作命令如下:
rabbitmqctl set_permissions -p myvh zhangsan “." ".” “.*”
复制代码
执行结果如下:
接下来执行如下命令可以验证授权是否成功:
rabbitmqctl -p myvh list_permissions
复制代码
可以看到,张三的权限已经赋值到位。
在上面的授权命令中,我们用的都是 ".*"
,松哥再额外说下这个通配符:
-
".*"
:这个表示匹配所有的交换机和队列。 -
"javaboy-.*"
:这个表示匹配名字以javaboy-
开头的交换机和队列。 -
""
:这个表示不匹配任何队列与交换机(如果想撤销用户的权限可以使用这个)。
我们可以使用如下命令来移除某一个用户在某一个 vhost 上的权限,例如移除 zhangsan 在 myvh 上的所有权限,如下:
rabbitmqctl clear_permissions -p myvh zhangsan
复制代码
执行完成后,我们可以通过 rabbitmqctl -p myvh list_permissions
命令来查看执行结果是否生效,最终执行效果如下:
如果一个用户在多个 vhost 上都有对应的权限,按照上面的 rabbitmqctl -p myvh list_permissions
命令只能查看一个 vhost 上的权限,此时我们可以通过如下命令来查看 lisi
在所有 vhost 上的权限:
rabbitmqctl list_user_permissions lisi
复制代码
4. Web 管理页面操作
当然,如果你不想敲命令,也可以通过 Web 管理端去操作权限。
在 Admin 选项卡,点击用户名称,就可以给用户设置权限了,如下:
可以设置权限,也可以清除权限。
当然,在网页上还有一个 Topic Permissions,这是 RabbitMQ3.7 开始的一个新功能,可以针对某一个 topic exchange
设置权限,主要针对 STOMP 或者 MQTT 协议,我们日常 Java 开发用上这个配置的机会很少。如果用户不设置的话,相应的 topic exchange
也总是有权限的。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
Docker步步实践
目录文档:
①Docker简介
②基本概念
③安装Docker
④使用镜像:
⑤操作容器:
⑥访问仓库:
⑦数据管理:
⑧使用网络:
⑨高级网络配置:
⑩安全:
⑪底层实现:
⑫其他项目:
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
**
[外链图片转存中…(img-Jzix2fe1-1713703694725)]
⑫其他项目:
[外链图片转存中…(img-0kfE925P-1713703694725)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)