(五)RabbitMQ管理

RabbitMQ管理

用户管理

    列出用户    rabbitmqctl list_users

[root@g66 opt]# rabbitmqctl list_users
Listing users ...
guest   [administrator]
[root@g66 opt]# 

    添加用户    rabbitmqctl add_user 用户名 用户密码

[root@g66 opt]# rabbitmqctl add_user ycj ycj123
Creating user "ycj" ...
[root@g66 opt]# rabbitmqctl list_users         
Listing users ...
guest   [administrator]
ycj     []
[root@g66 opt]# 

    修改用户密码    rabbitmqctl change_password 用户名 新密码

[root@g66 opt]# rabbitmqctl change_password ycj 123456
Changing password for user "ycj" ...
[root@g66 opt]# 

    清除密码    rabbitmqctl clear_password 用户名(注意:被清除密码的用户将无法使用密码登录)

[root@g66 opt]# rabbitmqctl clear_password ycj
Clearing password for user "ycj" ...
[root@g66 opt]# 

    给用户打标    rabbitmqctl set_user_tags 用户名 标签名(角色名)

[root@g66 opt]# rabbitmqctl set_user_tags ycj administrator
Setting tags for user "ycj" to [administrator] ...
[root@g66 opt]# rabbitmqctl list_users                     
Listing users ...
guest   [administrator]
ycj     [administrator]
[root@g66 opt]# 

        回收标记    rabbitmqctl set_user_tags 用户名(不写标签 会默认为空)

[root@g66 opt]# rabbitmqctl set_user_tags ycj 
Setting tags for user "ycj" to [] ...
[root@g66 opt]# rabbitmqctl list_users        
Listing users ...
guest   [administrator]
ycj     []
[root@g66 opt]# 

        注意:可以一次设定多个标记,次命令指挥以最新一次的设定为标准,之前的设置会被覆盖,所以要作好记录以便恢复。

[root@g66 opt]# rabbitmqctl set_user_tags ycj hui layui
Setting tags for user "ycj" to [hui,layui] ...
[root@g66 opt]# rabbitmqctl list_users                 
Listing users ...
guest   [administrator]
ycj     [hui, layui]
[root@g66 opt]# 

        提示:可以任意写标签

                在user中有5中默认标签

扫描二维码关注公众号,回复: 46928 查看本文章

             ● management:访问management plugin 

             ● policymaker:访问management plugin 和管理自己vhosts的策略和参数

             ● monitoring:访问management plugin 和查看所有配置和通道以及节点信息

             ● administrator:一切权限

             ● Node:无配置

    删除用户    rabbitmqctl delete_user 用户名

[root@g66 opt]# rabbitmqctl list_users                 
Listing users ...
guest   [administrator]
ycj     [hui, layui]
[root@g66 opt]# rabbitmqctl delete_user ycj
Deleting user "ycj" ...
[root@g66 opt]# rabbitmqctl list_users     
Listing users ...
guest   [administrator]
[root@g66 opt]# 

访问控制

    RabbitMQ里有一个vhost的概念,和其他软件中的vhost不太一样,在Apache中是表示一个虚拟的站点,而在这里表示一个命名空间和权限集合

    一个vhost中包含有一堆的exchange,binding,queue,permission,parameter和policie元素,对一个vhost拥有权限,对一个vhost拥有权限,就意味着对其下的这些元素有相应操作权限,它的设定是为了方便权限分配和隔离系统中默认带有一个名为“/”的vhost

    不同应用,最好使用不同的vhost进行隔离

    列出vhost    rabbitmqctl list_vhosts

[root@g66 ~]# rabbitmqctl list_vhosts
Listing vhosts ...
/
test
[root@g66 ~]# 

    添加vhost    rabbitmqctl add_vhost 虚拟主机名

[root@g66 ~]# rabbitmqctl add_vhost ycj
Creating vhost "ycj" ...
[root@g66 ~]# rabbitmqctl list_vhosts  
Listing vhosts ...
/
test
ycj
[root@g66 ~]# 

    查看vhost中权限分配    rabbitmqctl list_permissions -p 虚拟主机名

            注意:不使用-p指定vhost时,默认会使用“/”

[root@g66 ~]# rabbitmqctl list_permissions
Listing permissions in vhost "/" ...
guest   .*      .*      .*
[root@g66 ~]# rabbitmqctl list_permissions -p ycj
Listing permissions in vhost "ycj" ...
[root@g66 ~]# rabbitmqctl list_permissions -p test
Listing permissions in vhost "test" ...
[root@g66 ~]# 

    查看用户的权限    rabbitmqctl list_user_permissions 用户名

[root@g66 ~]# rabbitmqctl list_users
Listing users ...
guest   [administrator]
ycj     []
[root@g66 ~]# rabbitmqctl list_user_permissions guest
Listing permissions for user "guest" ...
/       .*      .*      .*
[root@g66 ~]# rabbitmqctl list_user_permissions ycj
Listing permissions for user "ycj" ...
[root@g66 ~]# 

    分配权限    rabbitmqctl set_permissions -p 虚拟主机名 用户名 权限

[root@g66 ~]# rabbitmqctl set_permissions -p / ycj ".*" ".*" ".*"   
Setting permissions for user "ycj" in vhost "/" ...
[root@g66 ~]# rabbitmqctl list_user_permissions ycj               
Listing permissions for user "ycj" ...
/       .*      .*      .*
[root@g66 ~]# rabbitmqctl list_permissions
Listing permissions in vhost "/" ...
guest   .*      .*      .*
ycj     .*      .*      .*
[root@g66 ~]# 

    收回权限    rabbitmqctl clear_permissions -p 虚拟主机名 用户名

            注意:不使用-p指定vhost时,默认会使用“/”,不会清除所有

[root@g66 ~]# rabbitmqctl clear_permissions -p / ycj
Clearing permissions for user "ycj" in vhost "/" ...
[root@g66 ~]# rabbitmqctl list_permissions          
Listing permissions in vhost "/" ...
guest   .*      .*      .*
[root@g66 ~]# 

    删除vhost    rabbitmqctl delete_vhost 虚拟主机名

[root@g66 ~]# rabbitmqctl list_vhosts
Listing vhosts ...
/
test
ycj
[root@g66 ~]# rabbitmqctl delete_vhost test
Deleting vhost "test" ...
[root@g66 ~]# rabbitmqctl list_vhosts      
Listing vhosts ...
/
ycj
[root@g66 ~]# 
        注意: 直接删掉vhost虽然时最方便的但是也是最危险的权限清除方式
                   “/”也是可以被删除的
[root@g66 ~]# rabbitmqctl delete_vhost /
Deleting vhost "/" ...
[root@g66 ~]# rabbitmqctl list_vhosts   
Listing vhosts ...
ycj
[root@g66 ~]# 
状态查看
list_queues [-p <vhostpath>] [<queueinfoitem> ...]  
    返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。
list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]  
    返回exchange的信息。
list_bindings [-p <vhostpath>] [<bindinginfoitem> ...] 
    返回绑定信息。
list_connections [<connectioninfoitem> ...]  
    返回链接信息。
list_channels [<channelinfoitem> ...]  
    返回目前所有的channels。
list_consumers [-p <vhostpath>]  
    返回consumers,
status  
    显示broker的状态
environment  
    显示环境参数的信息
report  
    #返回一个服务状态report,
eval <expr>


猜你喜欢

转载自blog.csdn.net/YCJ_xiyang/article/details/79991699
今日推荐