EMQ服务器主题发布与订阅权限控制
- 目的:解决指定用户连接和对主题的发布与订阅权限控制。
- 实施方案:
2.2、客户端连接认证,使用emq服务器自带emqx_auth_mysql:MySQL认证/访问控制插件进行认证。具体实现如下:
2.2.1、新建mqtt库,建立mqtt_user表(用户)、mqtt_acl表(权限),用户表是用来指定哪些用户能连接emq服务器,权限表是用来控制用户的行为(哪些用户能对哪些主题进行发布或订阅)。
mqtt_acl表
CREATE TABLE `mqtt_acl` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`allow` int(1) DEFAULT NULL COMMENT '0: 否, 1: 是,备注:是否允许
`ipaddr` varchar(60) DEFAULT NULL COMMENT 'IpAddress',备注:IP地址
`username` varchar(100) DEFAULT NULL COMMENT 'Username',备注:用户名
`clientid` varchar(100) DEFAULT NULL COMMENT 'ClientId',备注:客户端id
【EMQ服务器主题发布与订阅权限控制】`access` int(2) NOT NULL COMMENT '1: 订阅, 2: 发布,备注:发布与订阅
`topic` varchar(100) NOT NULL DEFAULT '' COMMENT 'Topic Filter',备注:主题过滤器
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.2.2、找到/emqttd/etc/plugins/emq_auth_mysql.conf配置文件,修改如下配置:
auth.mysql.server = mysql服务器地址,例如:127.0.0.1:3306
auth.mysql.username = mysql登录用户名
auth.mysql.password = mysql登录密码
auth.mysql.database =连接库
Emq服务器管理插件界面配置管理->插件->emq_auth_mysql配置。
2.2.3、配置好后重启emq服务器。
2.2.4、在emq数据库中mqtt_user表添加可连接的客户端用户数据、mqtt_acl表添加哪些用户可以发布或订阅哪些主题的数据。
推荐阅读
- 全过程工程咨询——时间管理(12)
- 探索免费开源服务器tomcat的魅力
- 2019年《家庭中的正面管教》作业七
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- 参加讲师训练营逐字稿-第1天
- 贪吃让我看到内在有很深伤痛
- 财富背后的智慧
- mac|mac 链接linux服务器 如何在Mac上连接服务器
- Linux|Linux 服务器nginx相关命令
- 运维|如何限制IP 通过 SSH连接服务器