RabbitMQ3.x之四_RabbitMQ角色说明及创建用户与授权

RabbitMQ3.x之四_角色说明及创建用户与授权

文章目录

  • RabbitMQ3.x之四_角色说明及创建用户与授权
  • [1. 访问和授权](#1. 访问和授权)
    • [1. Tags说明](#1. Tags说明)
    • [2. 命令行示例](#2. 命令行示例)
  • [2. 管理界面新建用户及访问授权](#2. 管理界面新建用户及访问授权)
    • [1. 管理界面新建用户](#1. 管理界面新建用户)
    • [2. 管理界面中的授权说明](#2. 管理界面中的授权说明)
    • [3. guest用户不能远程登录提示](#3. guest用户不能远程登录提示)
  • [3. 创建用户](#3. 创建用户)
    • [1. 基本命令](#1. 基本命令)
    • [2. 实际案例](#2. 实际案例)
    • [3. bat脚本创建用户](#3. bat脚本创建用户)
    • [4. 查看用户列表_命令行](#4. 查看用户列表_命令行)
    • [5. 查看用户列表_管理界面](#5. 查看用户列表_管理界面)

1. 访问和授权

官网说明:Management Plugin | RabbitMQ

  1. RabbitMQ中的访问和授权时以Tag来控制的

  2. 请注意,由于"管理员"做"监视"做的所有事情,而"监视"完成"管理"做的一切事情,因此每个用户通常最多需要一个标记,也即一个用户只能分配一个Tag

1. Tags说明

管理 UI 需要身份验证和授权,就像 RabbitMQ 需要的那样 它来自连接客户端。除了成功的身份验证外,管理 UI 访问还由用户标记控制。 这些标签使用 rabbitmqctl 进行管理。 默认情况下,新创建的用户不会设置任何标签。

有关用户和凭据的一般建议,请参阅生产清单 管理。

Tag(标记) Capabilities(能力)
None(无) 无法访问管理插件
management(管理) 用户可以通过消息传递协议执行的任何操作,以及:列出他们可以通过 AMQP 登录的虚拟主机在"他们的"中查看所有队列、交换和绑定 虚拟主机查看和关闭自己的频道和连接查看涵盖其所有"全球"统计数据 虚拟主机,包括其他用户的活动 在他们里面
policymaker(决策者) "管理"可以加上的一切:查看、创建和删除虚拟策略和参数 他们可以通过 AMQP 登录的主机
monitoring(监测) "管理"可以加上的一切:列出所有虚拟主机,包括它们可以 不使用消息传递协议进行访问查看其他用户的连接和频道查看节点级数据,例如内存使用情况和集群查看所有虚拟主机的真正全局统计信息
administrator(管理员) "政策制定者"和"监督者"可以加上的一切:创建和删除虚拟主机查看、创建和删除用户查看、创建和删除权限关闭其他用户的连接

请注意,由于"管理员"会执行所有"监视" 做,"监控"做"管理"做的一切, 每个用户通常最多需要一个标签。

对资源的正常 RabbitMQ 权限仍适用于监视器和 管理员;仅仅因为用户是监视器或 管理员未授予他们对交易所的完全访问权限, 通过管理的队列和绑定 插件或其他方式。

所有用户只能列出虚拟中的对象 他们拥有任何权限的主机。

如果由于缺少用户而无法访问管理 UI 具有足够的权限或忘记/不正确的权限,CLI 工具必须 用于管理用户及其凭据。rabbitmqctl add_user 应该用于创建用户,rabbitmqctl set_permissions授予 用户所需的权限,最后是 rabbitmqctl set_user_tags应用于授予用户管理 UI 访问权限。

2. 命令行示例

以下示例创建一个对管理 UI/HTTP API 具有完全访问权限的用户(如 所有虚拟主机和管理功能):

bash 复制代码
# create a user
rabbitmqctl add_user full_access s3crEt
# tag the user with "administrator" for full management UI and HTTP API access
rabbitmqctl set_user_tags full_access administrator

2. 管理界面新建用户及访问授权

rabbitmq默认的guest用户具有所有的操作权限,因此只能限制本地访问,不能远程访问

1. 管理界面新建用户

2. 管理界面中的授权说明

Comma-separated list of tags to apply to the user. Currently supported by the management plugin:

  • management

    User can access the management plugin

  • policymaker

    User can access the management plugin and manage policies and parameters for the vhosts they have access to.

  • monitoring

    User can access the management plugin and see all connections and channels as well as node-related information.

  • administrator

    User can do everything monitoring can do, manage users, vhosts and permissions, close other user's connections, and manage policies and parameters for all vhosts.

Note that you can set any tag here; the links for the above four tags are just for convenience.

要应用于用户的逗号分隔的标记列表。目前由管理插件支持:

经营

用户可以访问管理插件

-决策者

用户可以访问管理插件,并管理他们可以访问的vhosts的策略和参数。

-监测

用户可以访问管理插件,查看所有连接和通道以及节点相关信息。

管理员

用户可以做监控所能做的一切,管理用户、vhosts和权限,关闭其他用户的连接,并管理所有vhosts的策略和参数。

请注意,您可以在此处设置任何标记;上面四个标签的链接只是为了方便。

3. guest用户不能远程登录提示

3. 创建用户

1. 基本命令

shell 复制代码
# 创建vhost
rabbitmqctl add_vhost <vhost_name>
# 创建用户
rabbitmqctl add_user <username> <password>
# 给用户分配tag(角色)
rabbitmqctl set_user_tags <username> <tag>
# 查看用户列表
rabbitmqctl list_users
# 修改用密码
rabbitmqctl  change_password  <username> <newPassword>
# 开启某个用户远程访问
rabbitmqctl set_permissions -p "<vhost_name>" <username> ".*" ".*" ".*"
# 删除用户 
rabbitmqctl  delete_user  <username>

2. 实际案例

shell 复制代码
# 创建用户
rabbitmqctl add_user mytest test123
# 给用户分配tag(角色)
rabbitmqctl set_user_tags mytest administrator
# 开启远程访问
rabbitmqctl set_permissions -p "/" mytest ".*" ".*" ".*"

3. bat脚本创建用户

  1. Windows中一个bat脚本执行多条命令的说明

cmd1 & cmd2 & cmd3 : 无论前面命令是否执行成功,后面命令都会执行

cmd1 && cmd2 && cmd3: 仅当前面命令成功时,才执行后面的命令

cmd1 || cmd2 || cmd3: 仅当前面命令失败时.才执行后面命令

  1. 编写脚本如下

新建一个createRabbitUser.bat,内容如下

注意:所有命令必须在同一行,不能换行,否则会执行失败

shell 复制代码
rabbitmqctl add_user mytest test123 && rabbitmqctl set_user_tags mytest administrator && rabbitmqctl set_permissions -p "/" mytest ".*" ".*" ".*"
pause

4. 查看用户列表_命令行

输入命令rabbitmqctl list_users,查看用户如下

5. 查看用户列表_管理界面

  1. 通过脚本创建用户后,如下

点击用户名,如下图

  1. mytest用户远程登录如下
相关推荐
guitarCC37 分钟前
spark Rdd的创建方式
大数据·分布式·spark
Yz98761 小时前
Hadoop里面MapReduce的序列化与Java序列化比较
java·大数据·jvm·hadoop·分布式·mapreduce·big data
不能再留遗憾了3 小时前
RabbitMQ 高级特性——发送方确认
分布式·rabbitmq·ruby
益达_z3 小时前
中间件知识点-消息中间件(Rabbitmq)一
分布式·中间件·rabbitmq
.生产的驴6 小时前
SpringBoot 消息队列RabbitMQ 消息确认机制确保消息发送成功和失败 生产者确认
java·javascript·spring boot·后端·rabbitmq·负载均衡·java-rabbitmq
.生产的驴6 小时前
SpringBoot 消息队列RabbitMQ在代码中声明 交换机 与 队列使用注解创建
java·spring boot·分布式·servlet·kafka·rabbitmq·java-rabbitmq
lipviolet7 小时前
Redis系列---Redission分布式锁
数据库·redis·分布式
spiker_14 小时前
RabbitMQ 常见使用模式详解
分布式·rabbitmq
不能再留遗憾了14 小时前
RabbitMQ 高级特性——持久化
分布式·rabbitmq·ruby
成为大佬先秃头14 小时前
解决RabbitMQ设置TTL过期后不进入死信队列
分布式·中间件·rabbitmq·java-rabbitmq