emqx配置mysql认证,emqx使用mysql完成用户密码验证和ACL鉴权
emqx使用mysql完成用戶密碼驗(yàn)證和ACL鑒權(quán)
emqx使用mysql完成用戶密碼驗(yàn)證和ACL鑒權(quán)
摘要:前幾篇博客介紹的是使用配置文件配置了ACL和客戶端用戶名密碼配置實(shí)現(xiàn)生產(chǎn)環(huán)境下的安全登錄和權(quán)限控制,各項(xiàng)配置比較繁瑣,修改起來比較麻煩,下面介紹使用mysql進(jìn)行統(tǒng)一的管理控制。
環(huán)境說明:
1.linux系統(tǒng)下,centos 7環(huán)境
2.使用docker運(yùn)行emqtt服務(wù)器,參照:https://blog.csdn.net/u011089760/article/details/89892591
3.進(jìn)入docker方式,參照:https://blog.csdn.net/u011089760/article/details/89892591
4.MySQL版本:5.6+
1)配置mysql連接配置
加載mysql權(quán)限插件
如果無法加載,可以通過界面配置的方式進(jìn)行插件的配置和啟動(dòng)
mysql數(shù)據(jù)庫(kù)建表
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鑒權(quán)及用戶登錄賬號(hào)密碼數(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中的控制將不受限制
如配置遇到問題或其他技術(shù)相關(guān),可以留言
emqx使用mysql完成用戶密碼驗(yàn)證和ACL鑒權(quán)相關(guān)教程
總結(jié)
以上是生活随笔為你收集整理的emqx配置mysql认证,emqx使用mysql完成用户密码验证和ACL鉴权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux应用程序逆向,Linux下查看
- 下一篇: mysql 中 end like,MyS