RabbitMQ用户增删及权限控制

RabbitMQ用户增删及权限控制

用户角色分类

none:无法登录控制台

不能访问 management plugin,通常就是普通的生产者和消费者。

management:普通管理者。

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对policies进行管理。用户可以通过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的全局的统计信息
同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

administrator:超级管理员。

policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections

创建用户

1
2
3
4
rabbitmqctl add_user {用户名} {密码}

// 设置权限
rabbitmqctl set_user_tags {用户名} {权限}

例:创建一个超级用户

1
2
rabbitmqctl add_user admin1 admin1
rabbitmqctl set_user_tags admin1 administrator

查看用户列表

1
rabbitmqctl list_users

为用户赋权

1
2
3
4
5
6
7
8
9
10
11
12
13
14

添加 Virtual Hosts :
rabbitmqctl add_vhost <vhost>

删除 Virtual Hosts :
rabbitmqctl delete_vhost <vhost>

添加 Users :
rabbitmqctl add_user <username> <password>
rabbitmqctl set_user_tags <username> <tag> ...
rabbitmqctl set_permissions [-p <vhost>] <user> <conf> <write> <read>

删除 Users :
delete_user <username>

例:

1
2
3
4
5
6
7
8
9
10
// 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p vhost1 user1 '.*' '.*' '.*'

// 查看权限
rabbitmqctl list_user_permissions user1

rabbitmqctl list_permissions -p vhost1

// 清除权限
rabbitmqctl clear_permissions [-p VHostPath] User

删除用户

1
rabbitmqctl delete_user Username

修改用户的密码

1
rabbitmqctl change_password Username Newpassword
分享到