博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RabbitMQ消息队列-VirtualHost与权限管理
阅读量:6232 次
发布时间:2019-06-21

本文共 2293 字,大约阅读时间需要 7 分钟。

hot3.png

VirtualHost

像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?RabbitMQ也有类似的权限管理。在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当月一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。

在RabbitMQ中无法通过AMQP创建VirtualHost,可以通过以下命令来创建。

rabbitmqctl add_vhost [vhostname]

当然也可以通过WEB管理插件来创建。

RabbitMQ创建vhost

如上图在创建完vhost后可以在All Virtual Host标签看到新建的VirtualHost。

用户权限管理

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

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

新建用户

rabbitmqctl add_user superrd superrd

配置权限

set_permissions [-p 
]

其中, 的位置分别用正则表达式来匹配特定的资源,如

‘^(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

转载于:https://my.oschina.net/iioschina/blog/1930142

你可能感兴趣的文章
linux:逐行合并两文件(paste命令)
查看>>
mjpg-stream 视频服务 (1)| 简介与配置树莓派使用
查看>>
makefile learning
查看>>
java语言的发展史
查看>>
homebrew安装nginx,mysql,redis,zookeeper
查看>>
bug报告-常用词汇中英对照表
查看>>
EPOCH, BATCH, INTERATION
查看>>
Linux下安装php环境并且配置Nginx支持php-fpm模块
查看>>
结合typedef更为直观的应用函数指针
查看>>
UVA 10410 Tree Reconstruction
查看>>
映射前和映射后的操作
查看>>
java内存区域与内存溢出异常(2)
查看>>
熟悉HBase基本操作
查看>>
LeetCode:3Sum Closet
查看>>
MATLAB拟合和插值
查看>>
IOS int NSInteger NSNumber区分
查看>>
关于jquery 操作select的一些事
查看>>
谈谈JDK线程的伪唤醒
查看>>
ORA-39901 EXPDP分区报错/分区表删除不完全
查看>>
HDU 4946 共线凸包
查看>>