emqx配置mysql认证,emqx使用mysql完成用户密码验证和ACL鉴权
emqx使用mysql完成用戶密碼驗證和ACL鑒權
emqx使用mysql完成用戶密碼驗證和ACL鑒權
摘要:前幾篇博客介紹的是使用配置文件配置了ACL和客戶端用戶名密碼配置實現(xiàn)生產(chǎn)環(huán)境下的安全登錄和權限控制,各項配置比較繁瑣,修改起來比較麻煩,下面介紹使用mysql進行統(tǒng)一的管理控制。
環(huán)境說明:
1.linux系統(tǒng)下,centos 7環(huán)境
2.使用docker運行emqtt服務器,參照:https://blog.csdn.net/u011089760/article/details/89892591
3.進入docker方式,參照:https://blog.csdn.net/u011089760/article/details/89892591
4.MySQL版本:5.6+
1)配置mysql連接配置
加載mysql權限插件
如果無法加載,可以通過界面配置的方式進行插件的配置和啟動
mysql數(shù)據(jù)庫建表
CREATE TABLE `mqtt_acl` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`allow` int(1) DEFAULT NULL COMMENT '0: deny, 1: allow',
`ipaddr` varchar(60) DEFAULT NULL COMMENT 'IpAddress',
`username` varchar(100) DEFAULT NULL COMMENT 'Username',
`clientid` varchar(100) 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=utf8;
CREATE TABLE `mqtt_user`
( `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
`salt` varchar(20) DEFAULT NULL,
`is_superuser` tinyint(1) DEFAULT 0,
`created` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `mqtt_username` (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
插入ACL鑒權及用戶登錄賬號密碼數(shù)據(jù)數(shù)據(jù)
INSERT INTO `mqtt_acl` (`id`, `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`)
VALUES (1,1,NULL,'$all',NULL,2,'#'),
(2,0,NULL,'$all',NULL,1,'$SYS/#'),
(3,0,NULL,'$all',NULL,1,'eq #'),
(5,1,'127.0.0.1',NULL,NULL,2,'$SYS/#'),
(6,1,'127.0.0.1',NULL,NULL,2,'#'),
(7,1,NULL,'dashboard',NULL,1,'$SYS/#');
如果is_superuser是1的話,acl中的控制將不受限制
如配置遇到問題或其他技術相關,可以留言
emqx使用mysql完成用戶密碼驗證和ACL鑒權相關教程
總結
以上是生活随笔為你收集整理的emqx配置mysql认证,emqx使用mysql完成用户密码验证和ACL鉴权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux应用程序逆向,Linux下查看
- 下一篇: python爬取多页数据_python爬