RabbitMQ中的角色分爲如下五類:none、management、policymaker、monitoring、administrator
(1) 超級管理員(administrator)
可登陸管理控制檯(啓用management plugin的情況下),可查看所有的信息,並且可以對用戶,策略(policy)進行操作。
(2) 監控者(monitoring)
可登陸管理控制檯(啓用management plugin的情況下),同時可以查看rabbitmq節點的相關信息(進程數,內存使用情況,磁盤使用情況等)
(3) 策略制定者(policymaker)
可登陸管理控制檯(啓用management plugin的情況下), 同時可以對policy進行管理。但無法查看節點的相關信息(上圖紅框標識的部分)。
(4) 普通管理者(management)
僅可登陸管理控制檯(啓用management plugin的情況下),無法看到節點信息,也無法對策略進行管理。
(5) 其他(none)
無法登陸管理控制檯,通常就是普通的生產者和消費者。
新建用戶:rabbitmqctl add_user user password
刪除用戶: rabbitmqctl delete_user user
改密碼: rabbimqctl change_password {username} {newpassword}
設置用戶角色的命令爲:
rabbitmqctl set_user_tags User Tag
rabbitmqctl set_user_tags hncscwc monitoring policymaker // 可以設置多個角色
設置用戶權限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
// 具有/vhost1這個virtual host中所有資源的配置、寫、讀權限以便管理其中的資源
rabbitmqctl set_permissions -p /vhost1 user_admin ‘.’ ‘.’ ‘.*’
set_permissions [-p ] 其中, 的位置分別用正則表達式來匹配特定的資源,如’^(amq.gen.*|amq.default)$’ 可以匹配server生成的和默認的exchange,’^$’不匹配任何資源
查看(指定hostpath)所有用戶的權限信息
rabbitmqctl list_permissions [-p VHostPath]
查看指定用戶的權限信息
rabbitmqctl list_user_permissions User
清除用戶的權限信息
rabbitmqctl clear_permissions [-p VHostPath] User
用戶權限
用戶權限指的是用戶對exchange,queue的操作權限,包括配置權限,讀寫權限。
配置權限會影響到exchange,queue的聲明和刪除。
讀寫權限影響到從queue裏取消息,向exchange發送消息以及queue和exchange的綁定(bind)操作。
例如: 將queue綁定到某exchange上,需要具有queue的可寫權限,以及exchange的可讀權限;
向exchange發送消息需要具有exchange的可寫權限;
從queue裏取數據需要具有queue的可讀權限。