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

像mysql有数据库的概念而且能够指定用户对库和表等操做的权限。那RabbitMQ呢?RabbitMQ也有相似的权限管理。在RabbitMQ中能够虚拟消息服务器VirtualHost,每一个VirtualHost至关月一个相对独立的RabbitMQ服务器,每一个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 
在RabbitMQ中没法经过AMQP建立VirtualHost,能够经过如下命令来建立。node

rabbitmqctl add_vhost [vhostname]

如上图在建立完vhost后能够在All Virtual Host标签看到新建的VirtualHost。mysql

用户权限管理

一般在权限管理中主要包含三步:linux

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

新建用户正则表达式

rabbitmqctl add_user wyt wyt

配置权限sql

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在“/”下面的所有资源的配置和读写权限。spa

rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"

注意”/”表明virtual host为“/”这个“/”和linux里的根目录是有区别的并非virtual host为“/”能够访问因此的virtual host,把这个“/”理解成字符串就行。code

配置角色orm

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

以下示例将wyt设置成administrator角色。

rabbitmqctl set_user_tags wyt administrator
相关文章
相关标签/搜索