成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

捋明白 RabbitMQ 中的權限系統,再也不擔心消息發送失敗了!

開發 前端
不管我們是通過網頁還是通過命令行工具創建用戶對象,剛創建好的用戶對象都是沒法直接使用的,需要我們首先把這個用戶置于某一個 vhost 之下,然后再賦予其權限,有了權限,這個用戶才可以正常使用。

 [[438846]]

不管我們是通過網頁還是通過命令行工具創建用戶對象,剛創建好的用戶對象都是沒法直接使用的,需要我們首先把這個用戶置于某一個 vhost 之下,然后再賦予其權限,有了權限,這個用戶才可以正常使用。

那么今天我們就來了解一下 RabbitMQ 中的權限系統,看下這個權限系統是什么樣子的。

1. RabbitMQ 權限系統介紹

RabbitMQ 是從 1.6 這個版本開始實現了一套 ACL 風格的權限系統,可能有小伙伴還不知道什么是 ACL 風格的權限系統,可以看看松哥之前發的這兩篇文章:

Spring Security 中如何細化權限粒度?

一個案例演示 Spring Security 中粒度超細的權限控制!

在這套 ACL 風格的權限管理系統中,允許非常多細粒度的權限控制,可以為不同用戶分別設置讀、寫以及配置等權限。

這里涉及到三種不同的權限:

  • 讀:和消息消費有關的所有操作,包括清除整個隊列的消息。
  • 寫:發布消息。
  • 配置:消息隊列、交換機等的創建和刪除。

這是 RabbitMQ 權限系統的一個簡單介紹。

2. 操作和權限的對應關系

接下來,下圖展示了操作和權限的對應關系:

公眾號后臺回復 rabbitmq_permission 可以獲取這張圖的 Excel 表格。

執行什么命令,需要什么權限,這張圖描述的一清二楚了。

3. 權限操作命令

RabbitMQ 中權限操作命令格式如下:

  1. rabbitmqctl set_permissions [-p vhosts] {user} {conf} {write} {read

這里有幾個參數:

  • [-p vhost]:授予用戶訪問權限的 vhost 名稱,如果不寫默認為 /。
  • user:用戶名。
  • conf:用戶在哪些資源上擁有可配置權限(支持正則表達式)。
  • write:用戶在哪些資源上擁有寫權限(支持正則表達式)。
  • read:用戶在哪些資源上擁有讀權限(支持正則表達式)。

至于可配置權限能干嘛,寫權限能干嘛,讀權限能干嘛,大家可以參考第二小節,這里不再贅述。

松哥來舉一個簡單的例子。

假設我們有一個名為 zhangsan 的用戶,我們希望該用戶在 myvh 虛擬主機下具備所有權限,那么我們的操作命令如下:

  1. rabbitmqctl set_permissions -p myvh zhangsan ".*" ".*" ".*" 

執行結果如下:

接下來執行如下命令可以驗證授權是否成功:

  1. rabbitmqctl -p myvh list_permissions 

可以看到,張三的權限已經賦值到位。

在上面的授權命令中,我們用的都是 ".*",松哥再額外說下這個通配符:

".*":這個表示匹配所有的交換機和隊列。

"javaboy-.*":這個表示匹配名字以 javaboy- 開頭的交換機和隊列。

"":這個表示不匹配任何隊列與交換機(如果想撤銷用戶的權限可以使用這個)。

我們可以使用如下命令來移除某一個用戶在某一個 vhost 上的權限,例如移除 zhangsan 在 myvh 上的所有權限,如下:

  1. rabbitmqctl clear_permissions -p myvh zhangsan 

執行完成后,我們可以通過 rabbitmqctl -p myvh list_permissions 命令來查看執行結果是否生效,最終執行效果如下:

如果一個用戶在多個 vhost 上都有對應的權限,按照上面的 rabbitmqctl -p myvh list_permissions 命令只能查看一個 vhost 上的權限,此時我們可以通過如下命令來查看 lisi 在所有 vhost 上的權限:

  1. rabbitmqctl list_user_permissions lisi 

4. Web 管理頁面操作

當然,如果你不想敲命令,也可以通過 Web 管理端去操作權限。

在 Admin 選項卡,點擊用戶名稱,就可以給用戶設置權限了,如下:

可以設置權限,也可以清除權限。

當然,在網頁上還有一個 Topic Permissions,這是 RabbitMQ3.7 開始的一個新功能,可以針對某一個 topic exchange 設置權限,主要針對 STOMP 或者 MQTT 協議,我們日常 Java 開發用上這個配置的機會很少。如果用戶不設置的話,相應的 topic exchange 也總是有權限的。

5. 小結

好啦,這就是關于 RabbitMQ 權限管理的一點點小知識~感興趣的小伙伴可以去試試啦~

本文轉載自微信公眾號「江南一點雨」,可以通過以下二維碼關注。轉載本文請聯系江南一點雨公眾號。

 

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2015-05-29 09:01:48

2021-12-21 09:05:46

命令Linux敲錯

2020-04-30 09:19:56

Docker容器虛擬機

2023-06-06 08:11:09

kafka事務消息語義

2020-01-21 21:15:16

WiFi網絡WiFi6

2020-06-15 08:03:17

大文件OOM內存

2023-07-14 21:34:40

JVM上下線線程

2021-08-13 22:38:36

大數據互聯網技術

2019-09-04 10:00:07

手機人臉識別

2022-09-14 08:02:25

加密算法Bcryp

2015-10-22 10:38:43

Wi-Fi燃氣報警器

2021-06-04 12:05:03

Redis Bitmap 數據庫

2021-06-11 07:14:04

QQ音樂微信翻譯

2021-06-08 07:48:26

數據 Python開發

2018-10-30 16:10:41

Linux救援模式命令

2016-08-09 16:17:37

高德地圖TFBOYS大數據

2024-06-20 12:51:37

PythonTermcolor

2021-09-30 22:46:05

微信安全支付

2020-04-30 09:01:27

路由器安全網絡安全路由器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频久久 | 精品欧美乱码久久久久久1区2区 | 日韩精品免费视频 | 久久成人精品一区二区三区 | аⅴ资源新版在线天堂 | 欧美日韩黄| 黄视频在线网站 | 成人精品一区二区三区 | 在线观看视频福利 | 午夜看电影在线观看 | 天堂视频中文在线 | 亚洲欧美日韩中文字幕一区二区三区 | 国产在线视频一区二区 | 国产美女久久 | 啪啪网页 | 自拍亚洲| 亚洲国产一区在线 | 亚洲高清视频在线观看 | 国产91九色 | 成人午夜免费福利视频 | 国产成人精品免费 | 欧美8一10sex性hd| 中文字幕国产视频 | 欧美三级电影在线播放 | www国产精 | 国产精品黄 | 国产激情视频在线 | 乱码av午夜噜噜噜噜动漫 | 日韩免费一区二区 | 久久在线 | 99re热这里只有精品视频 | 国产毛片视频 | 国产美女精品视频 | 亚洲国产精品日本 | 日韩靠逼 | 91麻豆精品国产91久久久久久 | 亚洲一区在线播放 | 亚洲高清一区二区三区 | 午夜99 | 波多野结衣亚洲 | 超碰在线97国产 |