rabbitmq許可權設定

2021-10-07 19:40:02 字數 1695 閱讀 9668

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

設定使用者角色的命令為: 

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

rabbitmq使用者許可權管理

安裝最新版本的rabbitmq 3.3.1 並啟用management plugin後,使用預設的賬號guest登陸管理控制台,卻提示登陸失敗。翻看官方的release文件後,得知由於賬號guest具有所有的操作許可權,並且又是預設賬號,出於安全因素的考慮,guest使用者只能通過localhost...

RabbitMq使用者許可權管理

rabbitmqctl add user 使用者名稱 密碼 rabbitmqctl list users rabbitmqctl delete user 使用者名稱 rabbitmqctl change password 使用者名稱 新密碼 1.6.0版本後 rabbitmq 實現了一整套訪問控制列...

RabbitMQ許可權控制原理

我們在使用mq搭建系統的時候,經常要開放佇列給外接系統訪問。外接系統的穩定性是不可控的。為了防止外接系統不穩定導致誤操作破壞了mq的配置或資料,需要對mq做比較精細的許可權控制。我的需求是這樣的 我有乙個資料查詢服務,並且通過mq推送資料變動訊息。對接mq的每個系統都會有自己乙個獨立的佇列來讀取訊息...