| name | kingbase-sql-audit |
| description | KingbaseES(金仓)SQL 上线前合规与风险审查专家。当用户提供待上线的 SQL(DML/DDL/DCL/函数/存储过程/触发器)及目标金仓实例连接信息,希望做上线前审查、代码评审、风险评估、锁风险检查、索引优化建议、回滚方案设计、SQL 注入审查、触发器安全审查时触发。触发关键词包括但不限于:'金仓SQL审查'、'金仓上线审查'、'KingbaseES SQL 评审'、'这段 SQL 能不能上线'、'帮我看看金仓这个 SQL 有没有风险'、'DDL 会不会锁表'、'这个变更安全吗'、'金仓 index 要不要加'、'帮我审查这段存储过程/触发器'、'金仓 SQL code review'。即使用户只说'帮我看看这几条 SQL'或'这个改动能直接上生产吗'并附带了 SQL 文本和金仓连接信息,也应使用本 skill。默认假设金仓实例运行在 PG 兼容模式(database_mode=pg)。 |
| tags | ["KingbaseES","金仓","SQL 变更","SQL 审查"] |
| platform | ["claude-code","cursor"] |
| author | digoal |
| version | 1.0.0 |
| license | GNU General Public License v2.0 |
| homepage | https://github.com/digoal/skills |
kingbase-sql-audit:KingbaseES(金仓)SQL 上线前审查
对即将上线的金仓 SQL(DML/DDL/DCL/函数/存储过程/触发器)做严格的合规与风险审查,产出结构化、可执行的审查报告。本技能是 pg-sql-audit 的金仓移植版,默认假设目标实例运行在 PG 兼容模式(database_mode=pg),本技能的全部脚本与 SQL 已在该模式下实测通过(KingbaseES V009R001C010 验证)。
与 PostgreSQL 的兼容性说明(金仓差异,务必先读)
KingbaseES 默认采用 PG 兼容模式,因此本技能使用的系统目录/视图与 PostgreSQL 完全一致,可直接复用:pg_stat_user_tables、pg_stat_activity、pg_locks、pg_constraint、pg_indexes、pg_depend、pg_trigger、pg_roles、pg_hba_file_rules 等。以下为金仓特有差异,审查时必须注意:
| 项目 | PostgreSQL | KingbaseES(本技能按此执行) |
|---|
| 统计语句视图 | pg_stat_statements | sys_stat_statements(金仓版,位于 public schema,实测可查) |
| 客户端认证文件 | pg_hba.conf | sys_hba.conf(用 SHOW hba_file; 确认实际路径) |
| 主配置文件 | postgresql.conf | kingbase.conf(用 SHOW config_file; 确认) |
| EXPLAIN BUFFERS | 需配合 ANALYZE | 同左:EXPLAIN (..., BUFFERS) 必须配 ANALYZE 否则报错。审查禁止 ANALYZE,因此执行计划一律用 EXPLAIN (COSTS, VERBOSE, FORMAT TEXT)(无 BUFFERS) |
| 只读会话兜底 | SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY | 语法兼容,但实测该语句不影响"当前事务";必须在显式事务内用 SET TRANSACTION READ ONLY 才真正生效。本技能脚本一律采用 BEGIN; SET TRANSACTION READ ONLY; ...; ROLLBACK; |
| 扩展 | pg_trgm 等 | V9R1C10 默认不提供 pg_trgm(pg_available_extensions 实测无),LIKE '%xxx' 的优化方案需调整(见 references/review_dimensions.md 维度1) |
| 在线建索引 | CREATE INDEX CONCURRENTLY | 实测支持,但同样不能在事务块内执行,必须单独会话/单独 psql -c |
| 其他 | | CREATE INDEX CONCURRENTLY、ADD CONSTRAINT ... NOT VALID + 、 plpgsql、、 均已实测兼容 |