RabbitMQ角色说明及权限说明
角色说明:
administartor 可以登陆控制台,查看所有信息,可以对rabbitmq进行管理
monitoring 监控者,可以登陆控制台,查看所有信息
policymaker 策略定制者,登陆控制台,指定策略
managment 普通管理员,可以登陆控制台
none 其他,无法登陆控制台,通常就是普通的生产者和消费者
创建用户密码及相关命令:
创建用户
rabbitmqctl add_user admin 123
给予用户相关角色
rabbitmqctl set_user_tags admin administrator
查看用户列表
rabbitmqctl list_users
更改用户密码
rabbitmqctl change_password admin 12345
删除用户
rabbitmqctl delete_user [Username]
VirtualHost说明
先理解下什么是VirtualHost?
像mysql拥有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?
RabbitMQ也有类似的权限管理。在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当月一个相对独立的RabbitMQ
服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 相当于mysql的db。Virtual Name一般以/开头
用户权限指的是用户对其所能访问的virtual hosts中的资源exchange,queue的操作权限(包括配置权限,读写权限)
对何virtual hosts具有配置、写、读的权限通过正则表达式来匹配,具体命令如下: rabbitmqctl set_permissions -p <vhostpath> <user> <conf> <write> <read> ###例如,给admin用户赋予 / 的所有权限 rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
注:默认virtual host为"/",默认用户guest(密码也是guest)具有"/"上的全部权限,仅能有localhost可以进行访问,建议删除或更改密码。
可通过将配置文件中loopback_users项来取消其只能本地访问的限制:erlang格式 {rabbit, [{loopback_users, []}]} sysctl格式 loopback_users=none
创建虚拟主机
rabbitmqctl add_vhost [vhostpath]
列出所有虚拟主机
rabbitmqctl list_vhosts
列出虚拟主机上所有角色对应权限
rabbitmqctl list_permissions -p [vhostpath]
删除虚拟主机
rabbitmqctl delete_vhost [vhostpath]
权限说明:
查看指定用户的权限信息
rabbitmqctl list_user_permissions admin
设置用户对某个virtual hosts的权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
清除用户对某个virtual hosts的权限
rabbitmqctl clear_permissions -p / admin