Expand description
SQL 控制台执行(全读写 + 4 护栏)。 SQL 控制台执行(全读写 + 4 道护栏)。
护栏:
- 高危语句闸门:
DROP DATABASE/DROP SCHEMA(字符串预检)绝禁;DROP/TRUNCATE/ALTER需confirm_dangerous。 - 无 WHERE 拦截:
UPDATE/DELETE无selection拒绝。 - 查询超时上限:复用
STATEMENT_TIMEOUT_SECS(pool 层已注入 GUC)。 - 前端二次确认(前端实现)。
默认禁止多语句(allow_multi 放开)。
Structs§
Enums§
- Guard
Result 🔒 - 护栏检查返回值。
Constants§
- ABSOLUTELY_
FORBIDDEN 🔒 - 绝对禁止的语句关键词(字符串预检,sqlparser 无 ObjectType::Database/Schema)。 命中即拒,不可放行。
- MAX_
ROWS 🔒 - 结果行数上限(超出截断 + 提示)。
Functions§
- check_
guards 🔒 - 护栏 1+2:sqlparser 解析后遍历 AST,检查高危语句与无 WHERE 的 UPDATE/DELETE。
- col_
to_ 🔒json - 把一列的值转成 JSON(按 PG 类型名分发)。
- execute_
one 🔒 - 执行单条语句,返回结果。
- execute_
sql - 执行 SQL(全读写,管理员)。护栏见模块文档。
- is_
absolutely_ 🔒forbidden - 护栏 1 的字符串预检(token 序列匹配)。
- is_
read_ 🔒only - 判断语句是否只读(SELECT/WITH…SELECT/EXPLAIN/SHOW 系列)。
- statement_
type_ 🔒name - 提取语句类型名(AST 变体名,如 “Select”/“Insert”/“Update”)。
- writes_
affect_ 🔒cache - 判断一组语句中是否含有写操作(非只读语句)。