#######################
#用户角色
#######################
RabbitMQ的用户角色分类:
none、management、policymaker、monitoring、administrator
RabbitMQ各类角色描述:
none
不能访问 management plugin
management
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
policymaker
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
monitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
administrator
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
创建用户并设置角色:
可以创建管理员用户,负责整个MQ的运维,例如:
- $sudo rabbitmqctl add_user user_admin passwd_admin
赋予其administrator角色:
- $sudo rabbitmqctl set_user_tags user_admin administrator
可以创建RabbitMQ监控用户,负责整个MQ的监控,例如:
- $sudo rabbitmqctl add_user user_monitoring passwd_monitor
赋予其monitoring角色:
- $sudo rabbitmqctl set_user_tags user_monitoring monitoring
可以创建某个项目的专用用户,只能访问项目自己的virtual hosts
- $sudo rabbitmqctl add_user user_proj passwd_proj
赋予其monitoring角色:
- $sudo rabbitmqctl set_user_tags user_proj management
创建和赋角色完成后查看并确认:
- $sudo rabbitmqctl list_users
########################
#RabbitMQ 权限控制:
########################
默认virtual host:"/"
默认用户:guest
guest具有"/"上的全部权限,仅能有localhost访问RabbitMQ包括Plugin,建议删除或更改密码。可通过将配置文件中loopback_users置孔来取消其本地访问的限制:
[{rabbit, [{loopback_users, []}]}]
用户仅能对其所能访问的virtual hosts中的资源进行操作。这里的资源指的是virtual hosts中的exchanges、queues等,操作包括对资源进行配置、写、读。配置权限可创建、删除、资源并修改资源的行为,写权限可向资源发送 消息,读权限从资源获取消息。比如:
exchange和queue的declare与delete分别需要exchange和queue上的配置权限
exchange的bind与unbind需要exchange的读写权限
queue的bind与unbind需要queue写权限exchange的读权限
发消息(publish)需exchange的写权限
获取或清除(get、consume、purge)消息需queue的读权限
对何种资源具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
其中,<conf> <write> <read>的位置分别用正则表达式来匹配特定的资源,如'^(amq\.gen.*|amq\.default)$'可以匹配server 生成的和默认的exchange,'^$'不匹配任何资源
需要注意的是RabbitMQ会缓存每个connection或channel的权限验证结果、因此权限发生变化后需要重连才能生效。
为用户赋权:
- $sudo rabbitmqctl set_permissions -p /vhost1 user_admin '.*' '.*' '.*'
该命令使用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
查看权限:
$sudo rabbitmqctl list_user_permissions user_admin
相关推荐
RabbitMQ流量控制机制分析1
创建队列命令:以创建队列test为例(这里的用户名密码需要有管理RabbitMQ的权限,可以是admin用户,也可以是自己创建的管理角色的用户) python rabbitmqadmin declare queue name=test auto_delete=false durable=...
基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现异步发送验证码源码。基于SpringBoot+RabbitMQ用户注册实现...
RabbitMQ快速入门及API介绍(401M) QQ截图 20191220230107.png?x-oss-process=style/pnp8 (42.73KB, 下载次数:227) 下载附件 2019-12-2023 :01 上传【课程介绍】:第一章 : RabbitMQ介绍:消息中间件概念、RabbitMQ...
rabbitmq3.6.5安装包及依赖
rabbitmq部署包及部署文档
RabbitMQ消息服务用户手册
按照文档,在Windows安装RabbitMQ,并配置用户和virtual Hosts 内含软件安装包和PDF
RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现,此附件包含RabbitMq相关安装包及超详细安装教程,可完美解决RabbitMq安装与配置问题
RabbitMQ资料RabbitMQ资料RabbitMQ资料RabbitMQ资料
RabbitMQ用户手册,RabbitMQ默认绑定所有可用的IPv4和IPv6地址,你可以设置该值来只绑定单个地址。 RABBITMQ_NODE_PORT Defaults to 5672. 默认5672端口
rabbitmq配置文件,用于rabbitmq管理
RabbitMQ 3.8.5 文件及安装文档,附带了RabbitMQ rpm文件及依赖 rpm 文件,节省下载时间
里面有安装的软件及安装教程,安装环境为centos7。 erlang-20.3.8.9-1.el7.centos.x86_64.rpm、rabbitmq-server-3.7.10-1.el7.noarch.rpm。
RabbitMQ Ansible角色 版本 看: 设置rabbitmq_version变量以定义要安装的RabbitMQ的版本。 rabbitmq_version : 3.6.6-1 用户数 看: 设置rabbitmq_users变量以定义当前用户的数组。 rabbitmq_users : - user : ...
RabbitMQClientUtil是MQ的测试工具类,他封装了fanout、direct、topic三种exchange模式,并包括发送数据和接收数据。...rabbitmq.properties配置文件根据自己需要自行放在,放置完毕后,请自己修改util中的文件地址
RabbitMQ3.9.15安装包及安装文档
包括rabbitmq-c压缩包及编译后的SimpleAmqpClient库,及测试通过的发送消息接受消息代码,otp,rabbitmq.exe使用说明等。留作后用
1、什么是 rabbitmq 2、为什么要使用 rabbitmq 1、在分布式系统下具备异步,削峰,负载均衡等一系列高级功能 2、拥有持久化的机制,进程消息,队