(十三)RabbitMQ消息队列-VirtualHost与权限管理
来源:互联网 发布:有了淘宝为啥还有天猫 编辑:程序博客网 时间:2024/06/05 20:32
VirtualHost
像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?RabbitMQ也有类似的权限管理。在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当月一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。
在RabbitMQ中无法通过AMQP创建VirtualHost,可以通过以下命令来创建。
rabbitmqctl add_vhost [vhostname]
当然也可以通过WEB管理插件来创建。
如上图在创建完vhost后可以在All Virtual Host标签看到新建的VirtualHost。
用户权限管理
通常在权限管理中主要包含三步:
- 新建用户
- 配置权限
- 配置角色
新建用户
rabbitmqctl add_user superrd superrd
配置权限
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
其中, 的位置分别用正则表达式来匹配特定的资源,如
‘^(amq.gen.*|amq.default)$’
可以匹配server生成的和默认的exchange,’^$’不匹配任何资源
- exchange和queue的declare与delete分别需要exchange和queue上的配置权限
- exchange的bind与unbind需要exchange的读写权限
- queue的bind与unbind需要queue写权限exchange的读权限 发消息(publish)需exchange的写权限
- 获取或清除(get、consume、purge)消息需queue的读权限
示例:我们赋予superrd在“/”下面的全部资源的配置和读写权限。
rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"
注意”/”代表virtual host为“/”这个“/”和linux里的根目录是有区别的并不是virtual host为“/”可以访问所以的virtual host,把这个“/”理解成字符串就行。
配置角色
rabbitmqctl set_user_tags [user] [role]
RabbitMQ中的角色分为如下五类:none、management、policymaker、monitoring、administrator
官方解释如下:
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.
none
不能访问 management pluginmanagement
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。policymaker
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parametersmonitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息administrator
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
如下示例将superrd设置成administrator角色。
rabbitmqctl set_user_tags superrd administrator
RabbitMQ技术交流QQ群:327034977(添加时请备注RabbitMQ)
- (十三)RabbitMQ消息队列-VirtualHost与权限管理
- RabbitMQ消息队列-VirtualHost与权限管理
- RabbitMQ入门教程(十三):虚拟主机vhost与权限管理
- RabbitMQ(消息队列)
- (四)RabbitMQ消息队列-服务详细配置与日常监控管理
- (四)RabbitMQ消息队列-服务详细配置与日常监控管理
- 消息队列RabbitMQ与Spring
- (二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念
- (二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念
- RabbitMQ消息队列(1)走进RabbitMQ
- 消息队列-RabbitMq(PHP)
- 消息队列-RabbitMq(PHP)
- RabbitMQ之队列与消息持久化
- RabbitMQ之队列与消息持久化
- 消息队列与 ActiveMQ, RabbitMQ,ZeroMQ 等
- Redis与RabbitMQ实现消息队列
- 消息队列RabbitMQ与Spring集成
- 消息队列RabbitMQ与Spring集成
- docker-compose.yml 语法说明【转】
- ES6
- 通过PL/SQL Developer导出数据库表不好用的解决方案之一:
- 整数无序数组求第K大数(暴力|快排)
- iOS 浅谈:深.浅拷贝与copy.strong
- (十三)RabbitMQ消息队列-VirtualHost与权限管理
- Web启动,停止Windows服务
- Shadow Brokers公布黑客工具,您准备好防御了吗?
- docker学习笔记01:Centos安装docker
- SHOI 2008 仙人掌图 BZOJ 1023
- android6.0 动态权限申请
- 近期状态
- 日志学习:SLF4J & Log4J2
- http 消息头与 响应消息头 详解