Skip to content

SQL审核

SQL上线

Grant授权(写在使用前)

第一分部:goInception

为避免出现如下access denied问题,需提前为各数据库进行grant操作 替代文本

-- goInception 用于备份库回滚,建议赋予用户权限
-- 这里的`inception_bak`指的是goinception中的BACKUP_USER用户名
GRANT SELECT, INSERT, CREATE ON *.* TO 'inception_bak'@'archery所在主机ip'

在提交完工单后,会新增两个库, 表名还有inception_backup_information$$,如下: 替代文本

第二部分:各实例数据库授权

-- 关于需要SUPER权限的原因:https://github.com/hhyo/Archery/issues/129#issuecomment-483599093
-- 在某些云实例中不支持赋权SUPER权限,但问题本质可能是因为不支持当前binlog_format
GRANT REPLICATION CLIENT, REPLICATION SLAVE, SUPER ON *.* TO '用户名'@'archery所在主机ip'

功能说明

MySQL支持比较完整的SQL审核功能,且依赖Inception/goInception工具,oracle、mongodb支持部分审核规则,其他数据库仅支持语句切分和执行,不做审核

MySQL

  • 建议使用前先完整阅读相关文档:goInception、Inception

  • 在系统管理-配置项管理,有Inception/goInception配置项

  • 建议优先选择goInception,Inception已经停止维护

Oracle

  • 支持解析运行Oracle下PLSQL执行块功能 #327 #688

  • 支持Oracle数据修改备份 #701

  • 支持Oracle update/insert/delete/create table/create index的语法SQL审核 #701

MongoDB

  • mongodb的审核使用mongo的命令执行,所以需要在archery部署的机器或容器中自行下载mongo,并配置环境变量

  • mongodb审核在创建索引时必须使用backup:true

  • mongodb审核影响行数没有做提前检测,默认为0

  • mongodb审核不支持对带.的文档名做操作:如system.roles、system.version

  • mongodb审核内容中是对需要配对的字符{}做简单判断,判断左右字符个数是否相等,如果有包含以下:{key:"value_{_"} 或{key:"value("} 或{key:"value]"}等情况会报语法错误

相关配置

SQL分析