【攻克RabbitMQ】多租户与权限的相关命令

多租户与权限

#创建vhost,大括号里的参数表示 vhost 的名称。
rabbitmqctl add vhost {vhost}
#罗列当前vhost的相关信息,name标识vhost名称;tracing是否使用了RabbitMQ的trace功能
rabbitmqctl list vhosts name tracing
#删除vhost的命令,删除vhost同时也会删除其下全部的队列、交换器、绑定关系、用户权限、参数和策略信息
rabbitmqctl delete_vhost {vhost)

RabbitMQ中,权限控制则是以vhost为单位的。当建立一个用户时,用户一般会被指派给至少一个vhost,而且只能访问被指派的vhost内的队列、交换器和绑定关系等。授予权限的命令以下:web

#相关的授予权限命令
#vhost:授予用户访问权限的vhost名称,能够设置为默认值,即vhost为“/”
#user:能够访问指定vhost的用户名
#conf:一个用于匹配用户在哪些资源上拥有可配置权限的正则表达式(可配置是队列和交换器的建立及删除之类的操做)
#write:一个用于匹配用户在哪些资源上拥有可写权限的正则表达式(可写指的是发布消息)
#read:一个用于匹配用户在哪些资源上拥有可读权限的正则表达式(可读指 与消息有关的操做,包括读取消息及清空整个队列等)
rabbitmqctl set permissions [-p vhost] {user) {conf) {write) {read) 
#清除权限
rabbitmqctl clear_permission s [-p v h ost] { username}
#用来显示虚拟机上的权限
rabbitmqctl list permissions [-p vhost) 
#用来显示用户的权限
rabbitmqctl list user permissions {username) 
#建立用户
rabbitmqctl add user {username} {password} 
#更新用户信息
rabbitmqctl chan ge_password {username} {newpassword} 
#清除密码
rabbitmqctl clear password {username}
#经过密码来验证用户
rabbitmqctl authentiçate_user {userηame} {password} 
#删除用户的命令,username表示要删除用户的名称
rabbitmqctl delete user {username) 
#罗列全部用户
rabbitmqctl list users
#为用户设置角色
#none: 无任何角色。新建立的用户的角色默认为 no口e。
#management: 能够访问 Web 管理页面。 Web 管理页面在 5.3 节中会有详细介绍。
#policymaker: 包含 management 的全部权限,而且能够管理策略 (Policy) 和参数( Parameter )。
#monitoring: 包含 management 的全部权限,而且能够看到全部链接、信道及节点相关的信息。
#administartor: 包含 monitoring 的全部权限,井且能够管理用户、虚拟主机、权限、策略、参数等。administator 表明了最高的权限。
rabbitmqctl set_user tags root monitoring