1. 程式人生 > >rabbitMQ配置檔案+使用者管理

rabbitMQ配置檔案+使用者管理

rabbitMQ允許設定系統範圍的可調引數並通過配置檔案進行設定。典型的,在rabbitmq/rabbitmq.config檔案裡。

不過我在3.6.9裡並沒有找到這個檔案,所以 ,後面仍然需要查詢和學習

管理使用者

新增使用者:./rabbitmqctl add_user cashing-tier cashMel

cashing-tier是使用者名稱,cashMel是密碼

輸出:Creating user "cashing-tier"...done.

刪除使用者:./rabbitmqctl dlete_user cashing-tier

輸出:Deleting user "cashing-tier"...done.

檢視使用者:rabbitmqctl list_users

輸出:Listing users...

cashing-tier

guest

...done

更改密碼:./rabbitmqctl change_password cashing-tier comp13xPassword

輸出:Changing password for user "cashing-tier"...

....done

Rabbit的許可權系統

假設你有sycamore的vhost,想要授予cashing-tier完全的訪問許可權(配置,寫和讀許可權)。這時候需要rabbitmqctl 的set_permissions來完成:

./rabbitmqctl set_permissions -p sycamore\cashing-tier ".*"".*"".*"

-p sycamore----告訴了set_permissions條目應該應用到哪個vhost上

cashing-tier------被授予許可權的使用者

".*"".*"".*"------授權的許可權。分別是對映到配置,寫和讀。

這裡是正則表示式,使用".*"指代所有的許可權(配置,以及寫和讀)。以為之匹配任何佇列或者交換器名字。

如果向為cashing-tier授予在oak vhost上的許可權,想要允許該使用者對任何佇列或者交換器執行讀操作,同時限制其只對名字以checks-開始的佇列和交換器允許寫操作。同時,你想要完全阻止配置操作。為達目的,需要設計三個正則表示式:

".*"---匹配任何佇列和交換器

"checks-.*"------只匹配名字以"checks-"開頭的佇列和交換器

""不匹配佇列和交換器(這就是如何對使用者拒絕指定的許可權)

把所有整合起來,這樣執行:

./rabbitmqctl set_permissions -p oak\-s all cashing-tier "" "checks-.*" ".*"

可以利用list_permissions命令來驗證許可權是否正確賦予給了oak vhost

./rabbitmqctl list_permissions -p oak

Listing permissions in vhost "oak"...

cashing-tier                              checks.*    .*  all

移除許可權:

./rabbitmqctl clear_permissions -p oak cashing-tier

如果向檢視使用者在rabbitMQ上所有vhost上的許可權,那麼清使用list_user_permissions:

./rabbitmqctl list_user_permissions cashing-tier

Listing permissions for user "cashing-tier"...

oak checks-.*   .*  all

sycamore .*    .*  .*  all

...done.