RabbitMq用户权限管理

1、用户管理

  • 创建用户
rabbitmqctl add_user 用户名 密码
  • 1
  • 查看用户列表
rabbitmqctl list_users
  • 1
  • 删除用户
rabbitmqctl delete_user 用户名
  • 1
  • 修改密码
rabbitmqctl change_password 用户名 新密码
  • 1

权限系统

1.6.0版本后 rabbitmq 实现了一整套访问控制列表(ACL)风格的权限系统,它允许大量细粒度的控制,同时可以授予用户读、写和配置权限。一下为这三者之前的差异:

  • 读——有关消费者的任何操作,包括“清除”整个队列(需要绑定队列成功)
  • 写——发布消息(需要绑定队列成功)
  • 配置——队列和交换器的创建和删除
    下表为不同的AMQP命令的列表和对应的权限
    RabbitMq用户权限管理
    每一条访问控制条目由以下四部分组成:
  • 被授予访问的用户
  • 权限控制应用的vhost
  • 需要授予的读/写/配置的权限组合
  • 权限范围
    注:访问控制条目是无法跨越vhost的。

授权

rabbitmqctl set_permissions -p test \ username ".*" ".*" ". "
  • 1
  • -p test——作用的vhost
  • username——被授予权限的用户
  • ".*" ".*" ".* "——授予的权限,分别对应配置、写、读 。注:“.*”表示匹配任何队列和交换器;“check- .*” 表示匹配名字以check- 为开头的名字个交换器
  • “” 表示不匹配任何队列和交换器

查看权限列表

rabbitmqctl  list_permissions -p test
  • 1

清除用户所有权限

rabbitmqctl  clear_permissions -p test username 
  • 1

1、用户管理

  • 创建用户
rabbitmqctl add_user 用户名 密码
  • 1
  • 查看用户列表
rabbitmqctl list_users
  • 1
  • 删除用户
rabbitmqctl delete_user 用户名
  • 1
  • 修改密码
rabbitmqctl change_password 用户名 新密码
  • 1

权限系统

1.6.0版本后 rabbitmq 实现了一整套访问控制列表(ACL)风格的权限系统,它允许大量细粒度的控制,同时可以授予用户读、写和配置权限。一下为这三者之前的差异:

  • 读——有关消费者的任何操作,包括“清除”整个队列(需要绑定队列成功)
  • 写——发布消息(需要绑定队列成功)
  • 配置——队列和交换器的创建和删除
    下表为不同的AMQP命令的列表和对应的权限
    RabbitMq用户权限管理
    每一条访问控制条目由以下四部分组成:
  • 被授予访问的用户
  • 权限控制应用的vhost
  • 需要授予的读/写/配置的权限组合
  • 权限范围
    注:访问控制条目是无法跨越vhost的。

授权

rabbitmqctl set_permissions -p test \ username ".*" ".*" ". "
  • 1
  • -p test——作用的vhost
  • username——被授予权限的用户
  • ".*" ".*" ".* "——授予的权限,分别对应配置、写、读 。注:“.*”表示匹配任何队列和交换器;“check- .*” 表示匹配名字以check- 为开头的名字个交换器
  • “” 表示不匹配任何队列和交换器

查看权限列表

rabbitmqctl  list_permissions -p test
  • 1

清除用户所有权限

rabbitmqctl  clear_permissions -p test username 
  • 1