前置條件安裝emqtt與Mysql或mariadb

進入到圖形管理介面後選擇Plugins->config來進行資料庫連線的設定

emqtt圖形化管理介面。

輸入資料庫帳號與連線(下圖紅色圈圈處)

設定emqtx_auth_mysql外掛。

在資料庫中建立簡單的幾個使用者

註:每個使用者的密碼均為預設的sha256雜湊後的結果

使用者資料表,密碼為sha256雜湊的結果。

前面幾筆為預設設定,主要為避免非管理者的權限過大。

下圖id編號12以後的欄位即為acl控制的系統機制,每個使用者個別的新增一或多筆的額外權限控制

存取控制資料表。

經過上述設定後會產生如下結果

  • 使用者bear僅可訂閱與發送bear/#之下的任意Topic資料
  • 使用者test僅可訂閱與發送test/#之下的任意Topic資料
  • 任意一般使用者無法訂閱或發送其{使用者名稱}/#之外的Topic資料
  • 例如
    1. 使用者test想要訂閱aaa的Topic將會無法取得到資料
    2. 使用者test想要發送資料到aaa的Topic將無法成功將資料發送到該Topic
    3. 使用者bear想要訂閱test/3的Topic將無法取得到資料
    4. 使用者bear想要發送資料到test/3的Topic將無法取得到資料