• 用户管理:user
    • #创建用户:add_user">#创建用户:add_user
    • #修改密码:change_password">#修改密码:change_password
    • #清除密码:clear_password">#清除密码:clear_password
    • #验证用户密码:authenticate_user">#验证用户密码:authenticate_user
    • #用户列表:list_users">#用户列表:list_users
    • #设置角色 set_user_tags">#设置角色 set_user_tags
    • #删除用户:delete_user">#删除用户:delete_user

    用户管理:user

    在 RabbitMQ 中,用户 是访问控制(Access Control)的基本单元,且用户可以跨越多个 vhost 授权。使用标准的用户名和密码来认证用户。

    #创建用户:add_user

    1. rabbitmqctl add_user {username} {password}
    2. Copied!

    1

    实践练习

    1. [root@study ~]# rabbitmqctl add_user test1 123456
    2. Creating user "test1"
    3. Copied!

    1
    2

    #修改密码:change_password

    1. rabbitmqctl change_password {username} {newpassword}
    2. Copied!

    1

    实践练习

    1. [root@study ~]# rabbitmqctl change_password test1 1234567
    2. Changing password for user "test1"
    3. Copied!

    1
    2

    #清除密码:clear_password

    清除密码后,该用户就不能使用密码登录了

    1. rabbitmqctl change_password {username}
    2. Copied!

    1

    #验证用户密码:authenticate_user

    可以验证用户密码是否匹配

    1. rabbitmqctl authenticate_user {username} {newpassword}
    2. Copied!

    1

    实践练习

    1. # 验证失败
    2. [root@study ~]# rabbitmqctl authenticate_user test1 123456
    3. Authenticating user "test1"
    4. Error: failed to authenticate user "test1"
    5. # 验证成
    6. [root@study ~]# rabbitmqctl authenticate_user test1 1234567
    7. Authenticating user "test1"
    8. Success
    9. Copied!

    1
    2
    3
    4
    5
    6
    7
    8
    9

    #用户列表:list_users

    1. rabbitmqctl list_users
    2. Copied!

    1

    实践练习

    1. [root@study ~]# rabbitmqctl list_users
    2. Listing users
    3. test1 []
    4. admin [administrator]
    5. guest [administrator]
    6. # 可以看到有 3 个用户
    7. Copied!

    1
    2
    3
    4
    5
    6

    方括号中的是角色类型,有 5 种:

    • none:无任何角色。新创建的为这种;怎么显示的是没有?
    • management:可以访问 web 管理页面(下一节讲解)
    • policymaker:包含 management 的所有权限,并且可以管理 策略(Policy)参数(Parameter)(下一章讲解)
    • monitoring:包含 management 的所有权限,并且可以看到所有连接、信道及节点相关的信息
    • administrator:最高权限,包含 monitoring 的所有权限,并且可以管理用户、虚拟主机、权限、策略、参数等。

      #设置角色 set_user_tags

      可以给用户设置角色,设置角色之后,现有的角色会被删除。也就是以这次设置的角色为准
    1. rabbitmqctl set_user_tags {username} {tag ...}
    2. tag :表示要设置的角色,可以多个,空格隔开
    3. Copied!

    1
    2
    3

    实践练习

    1. [root@study ~]# rabbitmqctl set_user_tags test1 management policymaker
    2. Setting tags for user "test1" to [management,policymaker]
    3. # 查看用户,就看到了刚刚设置的角色
    4. [root@study ~]# rabbitmqctl list_users
    5. Listing users
    6. test1 [management, policymaker]
    7. admin [administrator]
    8. guest [administrator]
    9. # 不带 tag 就是清空角色
    10. [root@study ~]# rabbitmqctl set_user_tags test1
    11. Setting tags for user "test1" to []
    12. Copied!

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

    #删除用户:delete_user

    1. rabbitmqctl delete_user {username}
    2. Copied!

    1

    实践练习

    1. [root@study ~]# rabbitmqctl delete_user test1
    2. Deleting user "test1"