EMQX配置ACL订阅发布权限问题

环境说明:
Linux系统,centos7.5环境
mysql 5.7
emqx版本 4.0.3
安装过程参考:https://docs.emqx.io/broker/v4/cn/getting-started/installation.html
安装完成后能够正常启动,配置emqx_auth_mysql 插件:
进入配置文件夹:cd etc/plugins/
编码配置文件:vim emqx_auth_mysql.confEMQX配置ACL订阅发布权限问题_第1张图片
保存退出,返回上级文件夹:cd …
进入emqx.conf,关闭匿名认证:
allow_anonymous = false
开启ACL权限验证:
acl_nomatch = allow
关联权限验证配置文件
acl_file = etc/acl.conf

保存退出;
数据库新建表:
	CREATE TABLE `mqtt_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  `salt` varchar(35) DEFAULT NULL,
  `is_superuser` (1) DEFAULT 0,
  `created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `mqtt_acl` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `allow` int(1) DEFAULT 1 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=utf8mb4;

进入控制台启动emqx_auth_mysql 插件,需要时进入配置页面进行配置。

进行到这里的时候已经可以通过数据库的用户和密码验证连接emq服务器了,但是订阅和发布的主题的权限依然没有被限制。
配置如下:
进入acl.conf
EMQX配置ACL订阅发布权限问题_第2张图片
保存重启,搞定。

你可能感兴趣的:(emqx应用实践)