3.User

予早 2025-02-21 01:08:23
Categories: Tags:

权限

权限描述对哪些资源执行哪些操作。

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