共计 1664 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 由于账号 guest 具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest 用户只能通过 localhost 登陆使用,并建议修改 guest 用户的密码以及新建其他账号管理使用 rabbitmq。 |
这里我们以创建个 test 帐号,密码 123456 为例,创建一个账号并支持远程 ip 访问。
创建账号
rabbitmqctl add_user test 123456
设置用户角色
rabbitmqctl set_user_tags test administrator
设置用户权限
rabbitmqctl set_permissions -p "/" test ".*" ".*" ".*"
设置完成后可以查看当前用户和角色(需要开启服务)
rabbitmqctl list_users
这是你就可以通过其他主机的访问 RabbitMQ 的 Web 管理界面了,访问方式,浏览器输入:serverip:15672。其中 serverip 是 RabbitMQ-Server 所在主机的 ip。
用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表
rabbitmqctl list_users
按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
(1) 超级管理员(administrator)
可登陆管理控制台 (启用 management plugin 的情况下),可查看所有的信息,并且可以对用户,策略(policy) 进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用 management plugin 的情况下),同时可以查看 rabbitmq 节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用 management plugin 的情况下), 同时可以对 policy 进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与 administrator 的对比,administrator 能看到这些内容。
(4) 普通管理者(management)
仅可登陆管理控制台(启用 management plugin 的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。
设置用户角色的命令为:
rabbitmqctl set_user_tags User Tag
User 为用户名,Tag 为角色名(对应于上面的 administrator,monitoring,policymaker,management,或其他自定义名称)。
也可以给同一用户设置多个角色,例如
rabbitmqctl set_user_tags username monitoring policymaker
用户权限指的是用户对 exchange,queue 的操作权限,包括配置权限,读写权限。配置权限会影响到 exchange,queue 的声明和删除。读写权限影响到从 queue 里取消息,向 exchange 发送消息以及 queue 和 exchange 的绑定 (bind) 操作。
例如:将 queue 绑定到某 exchange 上,需要具有 queue 的可写权限,以及 exchange 的可读权限;向 exchange 发送消息需要具有 exchange 的可写权限;从 queue 里取数据需要具有 queue 的可读权限。详细请参考官方文档中 ”How permissions work” 部分。