RabbitMQ消息队列(十三)-VirtualHost与权限管理
像mysql有數(shù)據(jù)庫的概念并且可以指定用戶對(duì)庫和表等操作的權(quán)限。那RabbitMQ呢?RabbitMQ也有類似的權(quán)限管理。在RabbitMQ中可以虛擬消息服務(wù)器VirtualHost,每個(gè)VirtualHost相當(dāng)月一個(gè)相對(duì)獨(dú)立的RabbitMQ服務(wù)器,每個(gè)VirtualHost之間是相互隔離的。exchange、queue、message不能互通。?
在RabbitMQ中無法通過AMQP創(chuàng)建VirtualHost,可以通過以下命令來創(chuàng)建。
如上圖在創(chuàng)建完vhost后可以在All Virtual Host標(biāo)簽看到新建的VirtualHost。
用戶權(quán)限管理
通常在權(quán)限管理中主要包含三步:
新建用戶
rabbitmqctl add_user wyt wyt配置權(quán)限
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>其中, 的位置分別用正則表達(dá)式來匹配特定的資源,如
'^(amq.gen.*|amq.default)$'可以匹配server生成的和默認(rèn)的exchange,’^$’不匹配任何資源
- exchange和queue的declare與delete分別需要exchange和queue上的配置權(quán)限
- exchange的bind與unbind需要exchange的讀寫權(quán)限
- queue的bind與unbind需要queue寫權(quán)限exchange的讀權(quán)限 發(fā)消息(publish)需exchange的寫權(quán)限
- 獲取或清除(get、consume、purge)消息需queue的讀權(quán)限
示例:我們賦予superrd在“/”下面的全部資源的配置和讀寫權(quán)限。
rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"注意”/”代表virtual host為“/”這個(gè)“/”和linux里的根目錄是有區(qū)別的并不是virtual host為“/”可以訪問所以的virtual host,把這個(gè)“/”理解成字符串就行。
配置角色
rabbitmqctl set_user_tags [user] [role]RabbitMQ中的角色分為如下五類:none、management、policymaker、monitoring、administrator
官方解釋如下:
management User can access the management plugin policymaker User can access the management plugin and manage policies and parameters for the vhosts they have access to. monitoring User can access the management plugin and see all connections and channels as well as node-related information. administrator User can do everything monitoring can do, manage users, vhosts and permissions, close other user’s connections, and manage policies and parameters for all vhosts.-
none?
不能訪問 management plugin -
management?
用戶可以通過AMQP做的任何事外加:?
列出自己可以通過AMQP登入的virtual hosts?
查看自己的virtual hosts中的queues, exchanges 和 bindings?
查看和關(guān)閉自己的channels 和 connections?
查看有關(guān)自己的virtual hosts的“全局”的統(tǒng)計(jì)信息,包含其他用戶在這些virtual hosts中的活動(dòng)。 -
policymaker?
management可以做的任何事外加:?
查看、創(chuàng)建和刪除自己的virtual hosts所屬的policies和parameters -
monitoring?
management可以做的任何事外加:?
列出所有virtual hosts,包括他們不能登錄的virtual hosts?
查看其他用戶的connections和channels?
查看節(jié)點(diǎn)級(jí)別的數(shù)據(jù)如clustering和memory使用情況?
查看真正的關(guān)于所有virtual hosts的全局的統(tǒng)計(jì)信息 -
administrator?
policymaker和monitoring可以做的任何事外加:?
創(chuàng)建和刪除virtual hosts?
查看、創(chuàng)建和刪除users?
查看創(chuàng)建和刪除permissions?
關(guān)閉其他用戶的connections
如下示例將wyt設(shè)置成administrator角色。
rabbitmqctl set_user_tags wyt administrator來源:RabbitMQ消息隊(duì)列(十三)-VirtualHost與權(quán)限管理 - 一個(gè)大西瓜咚咚咚 - 博客園
總結(jié)
以上是生活随笔為你收集整理的RabbitMQ消息队列(十三)-VirtualHost与权限管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RabbitMq的学习(一):Virtu
- 下一篇: 广州永胜大道西附近有什么好吃的?