【RabbitMQ学习笔记#8】请求许可

RabbitMQ权限系统中单用户可以跨多个vhost授权。

1、用户管理

添加用户: ./rabbitmqctl add_user 用户名 密码

删除用户:./rabbitmqctl delete_user 用户名

 删除用户时,所有引用该用户的控制条目都会从Rabbit 权限数据库中自动删除。

查看用户: ./rabbitmqctl list_users

修改密码 :./rabbitmqctl change_password 用户名 新密码

 

2、权限控制

2.1 基础知识

权限控制部分首先记住下面两点:

  • 访问控制列表(ACL)风格的权限系统。
  • 用户只能针对整个vhost进行授权和拒绝访问。

2.1.1 Rabbit权限类型

  • 读:有关消费消息的任何操作,前提是需要绑定
  • 写:发布消息,前提需要绑定
  • 配置:队列和交换器的创建和删除

2.1.2 AMQP 和RabbitMQ权限的映射关系

AMQP命令配置
exchange.declareexchange
exchange.deleteexchange
queue.declarequeue
queue.deletequeue
queue.bindqueueexchange
basic.publishexchange
basic.getqueue
basic.consumequeue
queue.purgequeue

2.1.3 访问控制条目

访问控制条目由以下四部分组成:

  • 被授予访问权限的用户
  • 权限控制应用的vhost
  • 需要授予的读/写/配置权限组合
  • 授权范围

Notice:

访问控制条目无法跨越vhost

2.2 权限相关命令

设置权限: ./rabbitmqctl set_permissions -p vhost名称 用户名  权限组合(配置权限 写权限 读权限)

权限组合需要按顺序包含配置权限、写权限、读权限三部分,每一部分权限设置的内容有如下几种情况:

".*" --- 匹配任何队列和交换器

"name-.*" --- 只匹配名称以name-开头的队列和交换器

"" --- 不匹配任何队列和交换器

查看权限:./rabbitmqctl list_permissions -p vhost名称

清除权限:./rabbitmqctl clear_permissions -p vhost名称

查看指定用户权限:./rabbitmqctl list_user_permissions 用户名

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

【RabbitMQ学习笔记#8】请求许可
返回顶部