安裝最新版本的rabbitmq(3.3.1),并啟用management plugin后,使用默認(rèn)的賬號guest登陸管理控制臺,卻提示登陸失敗。
翻看官方的release文檔后,得知由于賬號guest具有所有的操作權(quán)限,并且又是默認(rèn)賬號,出于安全因素的考慮,guest用戶只能通過localhost登陸使用,并建議修改guest用戶的密碼以及新建其他賬號管理使用rabbitmq(該功能是在3.3.0版本引入的)。
雖然可以以比較猥瑣的方式:將ebin目錄下rabbit.app中l(wèi)oopback_users里的<<"guest">>刪除,
并重啟rabbitmq,可通過任意IP使用guest賬號登陸管理控制臺,但始終是違背了設(shè)計者的初衷,再加上以前對這一塊了解也不多,因此有必要總結(jié)一下。
1. 用戶管理
用戶管理包括增加用戶,刪除用戶,查看用戶列表,修改用戶密碼。
相應(yīng)的命令
(1) 新增一個用戶
rabbitmqctl add_user Username Password
(2) 刪除一個用戶
rabbitmqctl delete_user Username
(3) 修改用戶的密碼
rabbitmqctl change_password Username Newpassword
(4) 查看當(dāng)前用戶列表
rabbitmqctl list_users
2. 用戶角色
按照個人理解,用戶角色可分為五類,超級管理員, 監(jiān)控者, 策略制定者, 普通管理者以及其他。
(1) 超級管理員(administrator)
可登陸管理控制臺(啟用management plugin的情況下),可查看所有的信息,并且可以對用戶,策略(policy)進行操作。
(2) 監(jiān)控者(monitoring)
可登陸管理控制臺(啟用management plugin的情況下),同時可以查看rabbitmq節(jié)點的相關(guān)信息(進程數(shù),內(nèi)存使用情況,磁盤使用情況等)
(3) 策略制定者(policymaker)
可登陸管理控制臺(啟用management plugin的情況下), 同時可以對policy進行管理。但無法查看節(jié)點的相關(guān)信息(上圖紅框標(biāo)識的部分)。
與administrator的對比,administrator能看到這些內(nèi)容
(4) 普通管理者(management)
僅可登陸管理控制臺(啟用management plugin的情況下),無法看到節(jié)點信息,也無法對策略進行管理。
(5) 其他
無法登陸管理控制臺,通常就是普通的生產(chǎn)者和消費者。
了解了這些后,就可以根據(jù)需要給不同的用戶設(shè)置不同的角色,以便按需管理。
設(shè)置用戶角色的命令為:
rabbitmqctl set_user_tags User Tag
User為用戶名, Tag為角色名(對應(yīng)于上面的administrator,monitoring,policymaker,management,或其他自定義名稱)。
也可以給同一用戶設(shè)置多個角色,例如
rabbitmqctl set_user_tags hncscwc monitoring policymaker
3. 用戶權(quán)限
用戶權(quán)限指的是用戶對exchange,queue的操作權(quán)限,包括配置權(quán)限,讀寫權(quán)限。配置權(quán)限會影響到exchange,queue的聲明和刪除。讀寫權(quán)限影響到從queue里取消息,向exchange發(fā)送消息以及queue和exchange的綁定(bind)操作。
例如: 將queue綁定到某exchange上,需要具有queue的可寫權(quán)限,以及exchange的可讀權(quán)限;向exchange發(fā)送消息需要具有exchange的可寫權(quán)限;從queue里取數(shù)據(jù)需要具有queue的可讀權(quán)限。詳細請參考官方文檔中"How permissions work"部分。
相關(guān)命令為:
(1) 設(shè)置用戶權(quán)限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
(2) 查看(指定hostpath)所有用戶的權(quán)限信息
rabbitmqctl list_permissions [-p VHostPath]
(3) 查看指定用戶的權(quán)限信息
rabbitmqctl list_user_permissions User
(4) 清除用戶的權(quán)限信息
rabbitmqctl clear_permissions [-p VHostPath] User
===============================
posted on 2017-03-06 16:52
思月行云 閱讀(316)
評論(0) 編輯 收藏 引用 所屬分類:
分布式\MQ