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.