用户管理:user
在 RabbitMQ 中,用户 是访问控制(Access Control)的基本单元,且用户可以跨越多个 vhost 授权。使用标准的用户名和密码来认证用户。
#创建用户:add_user
rabbitmqctl add_user {username} {password}
Copied!
1
实践练习
[root@study ~]# rabbitmqctl add_user test1 123456
Creating user "test1"
Copied!
1
2
#修改密码:change_password
rabbitmqctl change_password {username} {newpassword}
Copied!
1
实践练习
[root@study ~]# rabbitmqctl change_password test1 1234567
Changing password for user "test1"
Copied!
1
2
#清除密码:clear_password
清除密码后,该用户就不能使用密码登录了
rabbitmqctl change_password {username}
Copied!
1
#验证用户密码:authenticate_user
可以验证用户密码是否匹配
rabbitmqctl authenticate_user {username} {newpassword}
Copied!
1
实践练习
# 验证失败
[root@study ~]# rabbitmqctl authenticate_user test1 123456
Authenticating user "test1"
Error: failed to authenticate user "test1"
# 验证成
[root@study ~]# rabbitmqctl authenticate_user test1 1234567
Authenticating user "test1"
Success
Copied!
1
2
3
4
5
6
7
8
9
#用户列表:list_users
rabbitmqctl list_users
Copied!
1
实践练习
[root@study ~]# rabbitmqctl list_users
Listing users
test1 []
admin [administrator]
guest [administrator]
# 可以看到有 3 个用户
Copied!
1
2
3
4
5
6
方括号中的是角色类型,有 5 种:
- none:无任何角色。新创建的为这种;怎么显示的是没有?
- management:可以访问 web 管理页面(下一节讲解)
- policymaker:包含 management 的所有权限,并且可以管理 策略(Policy) 和 参数(Parameter)(下一章讲解)
- monitoring:包含 management 的所有权限,并且可以看到所有连接、信道及节点相关的信息
- administrator:最高权限,包含 monitoring 的所有权限,并且可以管理用户、虚拟主机、权限、策略、参数等。
#设置角色 set_user_tags
可以给用户设置角色,设置角色之后,现有的角色会被删除。也就是以这次设置的角色为准
rabbitmqctl set_user_tags {username} {tag ...}
tag :表示要设置的角色,可以多个,空格隔开
Copied!
1
2
3
实践练习
[root@study ~]# rabbitmqctl set_user_tags test1 management policymaker
Setting tags for user "test1" to [management,policymaker]
# 查看用户,就看到了刚刚设置的角色
[root@study ~]# rabbitmqctl list_users
Listing users
test1 [management, policymaker]
admin [administrator]
guest [administrator]
# 不带 tag 就是清空角色
[root@study ~]# rabbitmqctl set_user_tags test1
Setting tags for user "test1" to []
Copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#删除用户:delete_user
rabbitmqctl delete_user {username}
Copied!
1
实践练习
[root@study ~]# rabbitmqctl delete_user test1
Deleting user "test1"