emq修改服务器ip地址,EMQ服务器主题发布与订阅权限控制

目的:解决指定用户连接和对主题的发布与订阅权限控制。

实施方案:

2.1、emq服务器默认是可匿名连接,关闭匿名连接  找到/emqttd/etc/emq.conf  配置文件,将mqtt.allow_anonymous = false。

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

`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表添加哪些用户可以发布或订阅哪些主题的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值