emqx 新增 mysql 外掛程式進行acl驗證

2022-06-28 20:51:19 字數 4250 閱讀 7454

1、新建表

create table `mqtt_user` (

`id`

int(11

) unsigned not null auto_increment,

`username` varchar(

100) default null,

`password` varchar(

100) default null,

`salt` varchar(

35) default null,

`is_superuser` tinyint(

1) default 0

,  `created` datetime default null,

primary key (`id`),

unique key `mqtt_username` (`username`)

) engine=innodb default charset=utf8mb4;

2、插入使用者密碼

insert into `mqtt_user` ( `username`, `password`, `salt`, `is_superuser`) values (

'emqx_iot_user

', '

00000000

', null, 0);

3、建立acl表

create table `mqtt_acl` (

`id`

int(11

) unsigned not null auto_increment,

`allow`

int(1) default 1 comment '

0: deny, 1: allow',

`ipaddr` varchar(

60) default null comment '

ipaddress',

`username` varchar(

100) default null comment '

username',

`clientid` varchar(

200) default null comment '

clientid',

`access`

int(2) not null comment '

1: subscribe, 2: publish, 3: pubsub',

`topic` varchar(

100) not null default '' comment '

topic filter',

primary key (`id`)

) engine=innodb default charset=utf8mb4;

4、插入acl資訊

這裡插入 '$sys/#' 是系統下所有topic,單獨的 # 是不包含系統topic的。

insert into mqtt_acl (allow, ipaddr, username, clientid, access, topic) values

(1, null, '

emqx_iot_user

', '

emqx_001_pe

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_001_pe

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_002_pe

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_002_pe

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_003_pe

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_003_pe

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_004_pe

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_004_pe

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_001_se

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_001_se

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_002_se

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_002_se

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_003_se

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_003_se

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_004_se

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_004_se

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_01

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_01

', 3, '#'

), (

1, null, '

emqx_iot_user

', '

emqx_02

', 3, '

$sys/#'),

(1, null, '

emqx_iot_user

', '

emqx_02

', 3, '#'

);

5、配置認證鑑權外掛程式

# vi etc/plugins/emqx_auth_mysql.conf

修改:

auth.mysql.server = 127.0.0.1:3333

auth.mysql.username =root

auth.mysql.password =emq@iot1201

auth.mysql.database =iot 【修改預設資料庫

auth.mysql.password_hash =plain 【這裡修改成明文,預設是 sha245,咱們的密碼是已經加密後的。】

## auth.mysql.super_query = select is_superuser from mqtt_user where username = '

%u' limit 1

【遮蔽超管】

6、啟動emqx_mysql 外掛程式

# ./bin/emqx restart

# ./bin/emqx_ctl plugins load emqx_auth_mysql

7、檢視開啟預設載入

# vi data/loaded_plugins

結尾是:

.

.

emqx3 1自定義擴充套件外掛程式

1.安裝erlang otp21.2 emqx3.1使用eralng21.1編譯 1 erlang otp要使用的版本參考emqx的git原始碼文件我這裡emqx3.1應使用erlang otp21.2 2 erlang otp編譯安裝參考 到自定義目錄,並且配置環境變數 修改emqx中的relx....

geoserver新增外掛程式

erdasimg用於發布大資料量的影像,格式為img。優勢 支援大資料量,訪問速度快。劣勢 黑邊無法去掉,只能通過樣式調整。安裝步驟 3.解壓gdal data.zip。配置環境變數gdal data指向解壓的目錄。並給予users組下的使用者讀寫許可權。4.解壓gdal 1.9.2 msvc201...

vim 新增外掛程式

vim 的功能可以通過向它新增plugin得以擴充套件。所謂的plugin不過是乙個vim會自動載入執行的指令碼。把乙個指令碼放到你的plugin目錄就可以了,非常容易。plugin基本上分為兩類 全域性的 用於所有檔案 專用於某型別檔案的 只用於特定型別的一類檔案 當你啟動vim時它會自動的載入一...