权限
权限描述对哪些资源执行哪些操作。
AMQP 0-9-1中有configure、write、read三种权限,详见https://www.rabbitmq.com/docs/access-control#authorisation。
例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。
相关操作
创建用户
rabbitmqctl add_user admin 123456
修改用户密码
rabbitmqctl change_password Username Newpassword
设置标签(类似角色)
rabbitmqctl set_user_tags admin administrator
# 注意该标签写错也是可以正常执行的,但是不能正确访问
授予权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
查看用户列表
rabbitmqctl list_users
查看某个vhost允许访问用户列表
rabbitmqctl list_permissions -p vhost-name
查看指定用户的权限
rabbitmqctl list_user_permissions User
清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User
删除用户
rabbitmqctl delete_user guest
# 建议在生产环境中删除guest用户
资源限制
可以限制每个用户可打开的最大连接数和最大通道数。
Maximum Number of Connections
rabbitmqctl set_user_limits user1 '{"max-connections": 10}'
Maximum Number of Channels
rabbitmqctl set_user_limits guest '{"max-channels": 20}'
查询限制
rabbitmqctl list_user_limits --user admin
Clearing User Limits
# clears the maximum number of connections limit
rabbitmqctl clear_user_limits user1 'max-connections'
# clears the maximum number of channels limit
rabbitmqctl clear_user_limits user1 'max-channels'
# clears all limits in a single operation
rabbitmqctl clear_user_limits user1 all