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的可讀權限。