create database if not exists emqx DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
use emqx;
CREATE TABLE `mqtt_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT comment 'id',
  `username` varchar(100) DEFAULT NULL comment '用户名',
  `password_hash` varchar(100) DEFAULT NULL comment '密码',
  `salt` varchar(35) DEFAULT NULL comment '盐',
  `is_superuser` tinyint(1) DEFAULT 0 comment '是否是超管',
  `created` datetime DEFAULT NULL comment '创建时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_mqtt_username` (`username`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 comment 'mqtt用户表';
CREATE TABLE `mqtt_acl` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT comment 'id',
  `username` varchar(100) NOT NULL comment '用户',
  `permission` varchar(5) NOT NULL comment '权限 allow 和 deny',
  `action` varchar(9) NOT NULL comment '动作 publish、subscribe 和 all',
  `topic` varchar(100) NOT NULL comment '主题',
  `qos` tinyint(1) comment '可选值为 0、1、2，也可以用 , 分隔的字符串指定多个 QoS，例如 0,1。默认为全部 QoS',
  `retain` tinyint(1) comment '可选）用于指定当前规则是否支持发布保留消息，可选值有 0、1，默认允许保留消息',
  INDEX idx_username(username),
  PRIMARY KEY (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 comment 'mqtt权限表';
alter table mqtt_user
    add is_del bit default b'0' null comment '是否删除';

alter table mqtt_acl
    add is_del bit default b'0' null comment '是否删除';
alter table mqtt_acl
    add is_data bit default b'0' null comment '是否是数据(探测目标)';