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]"}等情况会报语法错误