偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

捋明白 RabbitMQ 中的權限系統(tǒng),再也不擔心消息發(fā)送失敗了!

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

 [[438846]]

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

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

1. RabbitMQ 權限系統(tǒng)介紹

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

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

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

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

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

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

這是 RabbitMQ 權限系統(tǒng)的一個簡單介紹。

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

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

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

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

3. 權限操作命令

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

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

這里有幾個參數(shù):

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

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

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

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

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

執(zhí)行結果如下:

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

  1. rabbitmqctl -p myvh list_permissions 

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

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

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

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

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

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

  1. rabbitmqctl clear_permissions -p myvh zhangsan 

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

如果一個用戶在多個 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 協(xié)議,我們日常 Java 開發(fā)用上這個配置的機會很少。如果用戶不設置的話,相應的 topic exchange 也總是有權限的。

5. 小結

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

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

 

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

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

大數(shù)據互聯(lián)網技術

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 數(shù)據庫

2021-06-11 07:14:04

QQ音樂微信翻譯

2021-06-08 07:48:26

數(shù)據 Python開發(fā)

2018-10-30 16:10:41

Linux救援模式命令

2016-08-09 16:17:37

高德地圖TFBOYS大數(shù)據

2024-06-20 12:51:37

PythonTermcolor

2021-09-30 22:46:05

微信安全支付

2020-04-30 09:01:27

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

51CTO技術棧公眾號