docker进入rabbitMQ管理配置中
docker exec -it 镜像ID bash
添加用户
rabbitmqctl add_user 用户名 密码
查看用户列表
rabbitmqctl list_users
为用户设置角色:
rabbitmqctl set_user_tags 用户名 administrator
角色类型有: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
添加virtual host:
VirtualHost
RabbitMq的VirtualHost(虚拟消息服务器),每个VirtualHost相当于一个相对独立的RabbitMQ服务器;每个VirtualHost之间是相互隔离的,exchange、queue、message不能互通。
拿数据库(用MySQL)来类比:RabbitMq相当于MySQL,RabbitMq中的VirtualHost就相当于MySQL中的一个库。
rabbitmqctl add_vhost /guard
为用户设置virtual host:
其中[/]可以访问所有的虚拟服务器(virtual host),如果改成虚拟服务器名称的话,表示该用户能访问这个虚拟服务器。
后面的3个[".*"]应该是配置,读,写的权限正则表达式
rabbitmqctl set_permissions -p /guard 用户名 '.*' '.*' '.*'
其他命令
查看用户权限
rabbitmqctl list_user_permissions 用户名
查看哪个用户拥有virtual host权限:
rabbitmqctl list_permissions -p /guard
清除权限:
rabbitmqctl clear_permissions -p /guard 用户名
删除用户:
rabbitmqctl delete_user 用户名
删除virtual host:
rabbitmqctl delete_vhost /guard