五、RabbitMQ 快速使用 - RabbitMQ 管理之 user 相关操作

作者: 温新

分类: 【PHP RabbitMQ】

阅读: 793

时间: 2023-02-27 07:21:38

hi,我是温新,一名 PHPer

版本:erlang-25.2.1、rabbitmq_server-3.11.9

系统版本:Rocky Linux 9.1

学习目标:掌握 user 相关操作

本篇文章结合官方文档编写及参考网络资料编写,虽非全部原创,但也是结合了自己的理解,若转载请附带本文 URL,编写不易,持续编写更不易,谢谢!

在 RabbitMQ 中,用户 是访问控制(Access Control)的基本单元,且用户可以跨越多个 vhost 授权。使用标准的用户名和密码来认证用户。

创建用户

语法

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">add_user</span> {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">username</span>} {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">password</span>}</span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">add_user</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">123456</span></span>

修改密码

语法

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">change_password</span> {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">username</span>} {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">newpassword</span>}</span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">change_password</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1234567</span></span>

清除密码

语法

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">change_password</span> {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">username</span>} </span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">change_password</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span></span>

验证用户密码

语法

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">authenticate_user</span> {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">username</span>} {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">newpassword</span>}</span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">authenticate_user</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1234567</span></span>

用户列表

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">list_users</span></span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># rabbitmqctl list_users</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">Listing</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">users</span> ...</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">user</span>    <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">tags</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span>    []</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">guest</span>   [<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">administrator</span>]</span>

[] 中有 5 种角色类型:

  • node 无任何角色;
  • management 可以访问 web 管理页面;
  • policymaker 包含 management 的所有权限,并且可以管理 策略(Policy)参数(Parameter)
  • monitoring 包含 management 的所有权限,并且可以看到所有连接、信道及节点相关的信息;
  • administrator 最高权限,包含 monitoring 的所有权限,并且可以管理用户、虚拟主机、权限、策略、参数等。

设置用户角色

可以给用户设置角色,设置角色之后,现有的角色会被删除。

语法

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># tag :表示要设置的角色,可以多个,空格隔开</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">set_user_tags</span> {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">username</span>} {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">tag</span> ...}</span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">set_user_tags</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">administrator</span></span>

删除用户

语法

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">delete_user</span> {<span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">username</span>}</span>

案例

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">rabbitmqctl</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">delete_user</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">test</span></span>
请登录后再评论