原文:(十三)RabbitMQ消息队列-VirtualHost与权限管理

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。

用户权限管理

通常在权限管理中主要包含三步:

  1. 新建用户
  2. 配置权限
  3. 配置角色

新建用户

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 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

如下示例将superrd设置成administrator角色。

rabbitmqctl set_user_tags superrd administrator

RabbitMQ技术交流QQ群:327034977(添加时请备注RabbitMQ)

(十三)RabbitMQ消息队列-VirtualHost与权限管理的更多相关文章

  1. RabbitMQ消息队列(十三)-VirtualHost与权限管理

    像mysql有数据库的概念并且可以指定用户对库和表等操作的权限.那RabbitMQ呢?RabbitMQ也有类似的权限管理.在RabbitMQ中可以虚拟消息服务器VirtualHost,每个Virtua ...

  2. RabbitMQ入门教程(十三):虚拟主机vhost与权限管理

    原文:RabbitMQ入门教程(十三):虚拟主机vhost与权限管理 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  3. RabbitMQ消息队列(四)-服务详细配置与日常监控管理

    RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sbin/rabbitmq-server -detached ] 查看 ...

  4. (四)RabbitMQ消息队列-服务详细配置与日常监控管理

    原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sb ...

  5. 使用EasyNetQ组件操作RabbitMQ消息队列服务

    RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合, ...

  6. RabbitMQ消息队列

    RabbitMQ消息队列 !!!  注意,保证服务器的内存足够,磁盘足够,以及删除/etc/hosts中没有用的dns解析 # 优点,能够保证消息数据持久化,不丢失,支持高并发 安装学习rabbitm ...

  7. Python RabbitMQ消息队列

    python内的队列queue 线程 queue:不同线程交互,不能夸进程 进程 queue:只能用于父进程与子进程,或者同一父进程下的多个子进程,进行交互 注:不同的两个独立进程是不能交互的.   ...

  8. RabbitMQ 消息队列 安装及使用

    RabbitMQ 消息队列安装: linux版本:CentOS 7 安装第一步:先关闭防火墙 1.Centos7.x关闭防火墙 [root@rabbitmq /]# systemctl stop fi ...

  9. (十)RabbitMQ消息队列-高可用集群部署实战

    原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...

随机推荐

  1. oracle跨数据库跨用户訪问注意事项

    java代码中不同意出现oracle的username.数据链路名. 跨用户.跨数据库的訪问必须在oracle中建同义词或视图来实现.在java代码中仅仅需当做当前用户下的对象处理.

  2. 取消xp开机默认登陆账户

    取消xp开机默认登陆账户 建了个新用户,把以前的用户删除后重新启动电脑,始终停留在 "正在启动" 界面,网上说是 Event Log:Eventlog(系统日志纪录服务) 没有自动 ...

  3. Android 多线程下载,断点续传,线程池

    你可以在这里看到这个demo的源码: https://github.com/onlynight/MultiThreadDownloader 效果图 这张效果图是同时开启三个下载任务,限制下载线程数量的 ...

  4. BZOJ2329: [HNOI2011]括号修复(Splay)

    解题思路: Replace.Swap.Invert都可以使用Splay完美解决(只需要解决一下标记冲突就好了). 最后只需要统计左右括号冲突就好了. 相当于动态统计最大前缀合和最小后缀和. 因为支持翻 ...

  5. vue踩坑记- Cannot find module 'wrappy'

    找不到模块"包装" 当你维护别人的项目代码的时候,在自己这里电脑上运行,打开一个项目cnpm run dev的时候,报错如下 Cannot find module 'wrappy' ...

  6. mycat基本概念及读写分离一

    mycat基本概念及读写分离一 目录(?)[+] 安装与启动 mycat目录介绍 mycat三个最重要配置文件 验证读写分离 安装与启动 linux下可以下载Mycat-server-xxxxx.li ...

  7. redirect_uri 参数错误

    http://www.cnblogs.com/zitjubiz/p/5935712.html http://blog.csdn.net/u014033756/article/details/52038 ...

  8. Android 调试出现 could not get wglGetExtensionsStringARB

    解决 AVD Manager -> 选择模拟器 -> 点击 Edit看 Enabled 是不是被选中了.是的话取消选中,OK.希望对你实用.

  9. mysql 获取自增id的值的方法

    原生jdbc方式: Statement.getGeneratedKeys() 示例: Statement stmt = null; ResultSet rs = null; try { // // C ...

  10. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第五篇:MVC整合Ajax

    摘要      本文将从完成“输入数据验证”这个功能出发,逐渐展开ASP.NET MVC与Ajax结合的方法.首先,本文将使用ASP.NET MVC提供的同步方式完成数据验证.而后,将分别结合ASP. ...