By default, the guest user is prohibited from connecting to the broker remotely; it can only connect over a > loopback interface (i.e. localhost). This applies both to AMQP and to any other protocols enabled via plugins. Any > other users you create will not (by default) be restricted in this way.
如果我们希望在远程的地方使用到guest用户我们可以修改配置
[root@CentOSFrist ~]# vim /etc/rabbitmq/rabbitmq.config [ {rabbit, [ {tcp_listeners, [5673]}, {loopback_users,[]} ]} ].重启一下服务就生效了,目前的配置是 rabbit节点上 端口号为5673 loopback用户为空。
[root@centOSFrist ~]# systemctl restart rabbitmq-server.service启动之后便能够连接到远程的rabbitmq当中 。
先看看如何去创建用户:
MacBook-Pro:sbin Tony$ ./rabbitmqctl add_user tony tonypwd Creating user "tony" ...成功创建了一个用户名为tony 密码为tonypwd 的用户。
删除用户:
MacBook-Pro:sbin Tony$ ./rabbitmqctl delete_user tony Deleting user "tony" ...删除一个用户名为tony 的用户
我们可以使用命令去查看用户信息
MacBook-Pro:sbin Tony$ ./rabbitmqctl list_users Listing users ... guest [administrator] tony []目前有两个用户 一个是 guest 还有就是 tony 然而guest 是 administrator
接下来我们来修改一下密码,注意如果删除了用户连同用户的权限也会同样删除。
MacBook-Pro:sbin Tony$ ./rabbitmqctl change_password tony 123456 Changing password for user "tony" ...修改了用户名为tony的密码,现在的密码被修改为123456
然后说重点,权限。这个是开发的过程之中用的应该最为常见。
RabbitMQ的权限也是非常容易让人理解的,传统的ACL风格。
读权限:有关消费消息的任何操作,包括 清除 整个队列。
写权限:发布消息
配置权限:队列和交换器的创建和删除。
注意:权限是没有办法跨越vhost的,如果你想某个用户拥有两个vhost的权限,你必须指定两条ACL。
先赋予tony用户对vhost 名称为 APP_A 的全部权限。
[root@centOSFrist ~]# rabbitmqctl set_permissions -p APP_A tony ".*" ".*" ".*" Setting permissions for user "tony" in vhost "APP_A" ...-p APP_AP –> 指定权限所对应的vhost,这里所写的vhost为APP_A
tony –> 跟在vhost 参数后面的是 对应的用户名称 这里所指定的用户名称为tony
第一个 “.*” –> 配置权限的正则表达式【最讨厌正则表达式】
第二个 “.*” –> 写入权限的正则表达式
第三个 “.*” –> 读权限的正则表达式