角色說明:
administartor 可以登陸控制台,查看所有信息,可以對rabbitmq進行管理
monitoring 監控者,可以登陸控制台,查看所有信息
policymaker 策略定制者,登陸控制台,指定策略
managment 普通管理員,可以登陸控制台
none 其他,無法登陸控制台,通常就是普通的生產者和消費者
創建用戶密碼及相關命令:
創建用戶
rabbitmqctl add_user admin 123
給予用戶相關角色
rabbitmqctl set_user_tags admin administrator
查看用戶列表
rabbitmqctl list_users
更改用戶密碼
rabbitmqctl change_password admin 12345
刪除用戶
rabbitmqctl delete_user [Username]
VirtualHost說明
先理解下什么是VirtualHost?
像mysql擁有數據庫的概念並且可以指定用戶對庫和表等操作的權限。那RabbitMQ呢?
RabbitMQ也有類似的權限管理。在RabbitMQ中可以虛擬消息服務器VirtualHost,每個VirtualHost相當月一個相對獨立的RabbitMQ
服務器,每個VirtualHost之間是相互隔離的。exchange、queue、message不能互通。 相當於mysql的db。Virtual Name一般以/開頭
用戶權限指的是用戶對其所能訪問的virtual hosts中的資源exchange,queue的操作權限(包括配置權限,讀寫權限)
對何virtual hosts具有配置、寫、讀的權限通過正則表達式來匹配,具體命令如下: rabbitmqctl set_permissions -p <vhostpath> <user> <conf> <write> <read> ###例如,給admin用戶賦予 / 的所有權限 rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
注:默認virtual host為"/",默認用戶guest(密碼也是guest)具有"/"上的全部權限,僅能有localhost可以進行訪問,建議刪除或更改密碼。
可通過將配置文件中loopback_users項來取消其只能本地訪問的限制:erlang格式 {rabbit, [{loopback_users, []}]} sysctl格式 loopback_users=none
創建虛擬主機
rabbitmqctl add_vhost [vhostpath]
列出所有虛擬主機
rabbitmqctl list_vhosts
列出虛擬主機上所有角色對應權限
rabbitmqctl list_permissions -p [vhostpath]
刪除虛擬主機
rabbitmqctl delete_vhost [vhostpath]
權限說明:
查看指定用戶的權限信息
rabbitmqctl list_user_permissions admin
設置用戶對某個virtual hosts的權限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
清除用戶對某個virtual hosts的權限
rabbitmqctl clear_permissions -p / admin