emqx配置mysql认证_emqx使用mysql完成用户密码验证和ACL鉴权-Go语言中文社区

本文介绍了如何在Linux环境下,特别是在CentOS 7系统中,配置EMQX使用MySQL进行用户认证和ACL权限控制。首先,加载MySQL权限插件并创建相关表结构,然后插入ACL和用户数据,通过设置`mqtt_acl`和`mqtt_user`表来管理用户的登录和权限。在遇到问题时,可以通过调整配置或留言寻求帮助。
摘要由CSDN通过智能技术生成

摘要:前几篇博客介绍的是使用配置文件配置了ACL和客户端用户名密码配置实现生产环境下的安全登录和权限控制,各项配置比较繁琐,修改起来比较麻烦,下面介绍使用mysql进行统一的管理控制。

环境说明:

1.linux系统下,centos 7环境

4.MySQL版本:5.6+

1)配置mysql连接配置

89dac36cbb498d64b256485d93c389f5.png

46af2ebd6449d2612c6bc64430623fb6.png

加载mysql权限插件

d0a9315ba761e0ba82da926507b80037.png

如果无法加载,可以通过界面配置的方式进行插件的配置和启动

4559e3d28ed13f0995b52deb69b35519.png

165dfb38baacb7a9ba695cc550cb7499.png

mysql数据库建表

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鉴权及用户登录账号密码数据数据

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/#');

cf705a5dd452b7e07b269147556c7b9d.png

45df14bed613bd876be9e49745fa3cca.png

如果is_superuser是1的话,acl中的控制将不受限制

如配置遇到问题或其他技术相关,可以留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值