Review SQL for security & compliance (SIXTA)
sixta_review_securityStatic security and data-handling review of pasted SQL for PostgreSQL or MySQL — no connection needed. Paste a query, DDL, or DCL (GRANT / CREATE USER / CREATE FUNCTION) and get named findings for least-privilege violations (GRANT ALL, GRANT TO PUBLIC), passwordless login roles, PostgreSQL SECURITY DEFINER functions missing SET search_path, MySQL LOAD DATA LOCAL INFILE, SQL-injection indicators (always-true OR, dynamic SQL built by concatenation), weak hashing (MD5/SHA1), and a tight compliance subset (PCI-prohibited CVV/CVC storage, sensitive columns stored as plaintext). Use when the user asks 'is this SQL safe / secure / compliant', pastes a migration or grant for review, or mentions security/PCI/PII. Input is analyzed in memory and never stored.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL to review — a query, DDL (CREATE/ALTER), or DCL (GRANT / CREATE USER / CREATE FUNCTION) | |
| engine | No | Database engine: postgresql or mysql. Optional — scopes engine-specific checks. | |
| version | No | Engine version, e.g. '16' (PostgreSQL major) or '8.0.35' (MySQL). Omit for a modern default; some verdicts are version-dependent and the assumption is stated in the result. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| engine | No | Engine the analysis targeted, when known. | |
| report | Yes | The full human-readable SIXTA report (markdown). | |
| findings | No | Named findings as structured data, when the tool produces them. | |
| finding_count | No | Number of findings/issues identified. | |
| overall_severity | No | Highest severity across findings (Critical/High/Medium/Low/Info). |