Database Audit Logger
This skill provides automated assistance for database audit logger tasks.
Prerequisites
Before using this skill, ensure:
- Database credentials with CREATE TABLE and CREATE TRIGGER permissions
- Understanding of compliance requirements (GDPR, HIPAA, SOX, PCI-DSS)
- Sufficient storage for audit logs (estimate 10-30% of data size)
- Decision on audit log retention period
- Access to database documentation for table schemas
- Monitoring tools configured for audit log analysis
Instructions
Step 1: Define Audit Requirements
- Identify tables requiring audit logging based on compliance needs
- Determine events to audit (INSERT, UPDATE, DELETE, SELECT for sensitive data)
- Define which columns contain sensitive data requiring audit
- Document retention requirements for audit logs
- Identify users/roles whose actions need auditing
Step 2: Choose Audit Strategy
- Trigger-Based Auditing: Best for comprehensive row-level tracking
- Pros: Automatic, no application changes, captures all changes
- Cons: Performance overhead, complex trigger maintenance
- Application-Level Auditing: Best for selective auditing
- Pros: Flexible, lower database overhead, easier debugging
- Cons: Requires application changes, can miss direct database changes
- Change Data Capture (CDC): Best for real-time streaming
- Pros: Minimal performance impact, real-time analysis, external processing
- Cons: Complex setup, requires CDC infrastructure
- Native Database Logs: Best for general monitoring
- Pros: No setup, captures everything, built-in
- Cons: High volume, limited retention, difficult to query
Step 3: Design Audit Table Schema
- Create audit log table with these core columns:
- audit_id (primary key), table_name, action (INSERT/UPDATE/DELETE)
- record_id (reference to audited record), old_values (JSON), new_values (JSON)
- changed_by (user), changed_at (timestamp), client_ip, application_context
- Add indexes on table_name, changed_at, changed_by for query performance
- Partition audit table by date for efficient archival
- Configure tablespace for audit logs separate from primary data
Step 4: Implement Audit Mechanism
- For trigger-based: Create AFTER INSERT/UPDATE/DELETE triggers on each table
- Capture old and new row values as JSON in trigger body
- Record user context (CURRENT_USER, application user, IP address)
- Handle trigger failures gracefully (log but don't block operations)
- Test triggers with sample data modifications
Step 5: Configure Audit Log Management
- Set up automated archival of old audit logs to cold storage
- Implement audit log analysis queries for common compliance reports
- Create alerts for suspicious activities (bulk deletes, off-hours changes)
- Document audit log query procedures for compliance auditors
- Schedule periodic audit log reviews with security team
Step 6: Validate Audit Implementation
- Perform test operations on audited tables
- Verify audit log entries are created with complete data
- Test audit log queries for performance
- Confirm audit logs cannot be modified by regular users
- Document audit implementation for compliance documentation
Output
This skill produces:
Audit Table Schema: SQL DDL for audit log table with proper indexes and partitioning
Audit Triggers: Database triggers for automatic audit log population on data changes
Audit Log Queries: Pre-built SQL queries for compliance reports and change tracking
Implementation Documentation: Configuration details, trigger logic, and maintenance procedures
Compliance Report Templates: SQL queries for GDPR access logs, SOX change reports, etc.
Error Handling
Trigger Performance Issues:
- Audit only critical tables, not all tables
- Use asynchronous audit logging with queue systems
- Batch audit log inserts instead of individual inserts
- Monitor trigger execution time and optimize trigger logic
Audit Table Growth:
- Implement automated archival of audit logs older than retention period
- Partition audit table by month or quarter
- Compress old audit log partitions
- Move historical audit logs to cheaper storage tiers
Missing Audit Context:
- Set application context in database session before operations
- Use database session variables to pass user identity
- Implement connection pooling with session initialization
- Log application user separately from database user
Permission Issues:
- Ensure audit log table is writable by trigger execution context
- Grant INSERT on audit table to all database users
- Protect audit table from modifications (no UPDATE/DELETE grants)
- Use separate schema for audit tables with restricted access
Resources
Audit Table Templates:
- PostgreSQL audit trigger:
{baseDir}/templates/postgresql-audit-trigger.sql
- MySQL audit trigger:
{baseDir}/templates/mysql-audit-trigger.sql
- Audit table schema:
{baseDir}/templates/audit-table-schema.sql
Compliance Report Queries: {baseDir}/queries/compliance-reports/
- GDPR data access report
- SOX change audit report
- User activity summary
- Suspicious activity detection
Audit Strategy Guide: {baseDir}/docs/audit-strategy-selection.md
Performance Tuning: {baseDir}/docs/audit-performance-optimization.md
Archival Procedures: {baseDir}/scripts/audit-archival.sh
Overview
This skill provides automated assistance for the described functionality.
Examples
Example usage patterns will be demonstrated in context.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: helixdevelopment-helixagent-implementing-database-audit-logg3description: Database Audit Logger4---5# Database Audit Logger67This skill provides automated assistance for database audit logger tasks.89## Prerequisites1011Before using this skill, ensure:12- Database credentials with CREATE TABLE and CREATE TRIGGER permissions13- Understanding of compliance requirements (GDPR, HIPAA, SOX, PCI-DSS)14- Sufficient storage for audit logs (estimate 10-30% of data size)15- Decision on audit log retention period16- Access to database documentation for table schemas17- Monitoring tools configured for audit log analysis1819## Instructions2021### Step 1: Define Audit Requirements221. Identify tables requiring audit logging based on compliance needs232. Determine events to audit (INSERT, UPDATE, DELETE, SELECT for sensitive data)243. Define which columns contain sensitive data requiring audit254. Document retention requirements for audit logs265. Identify users/roles whose actions need auditing2728### Step 2: Choose Audit Strategy291. **Trigger-Based Auditing**: Best for comprehensive row-level tracking30 - Pros: Automatic, no application changes, captures all changes31 - Cons: Performance overhead, complex trigger maintenance322. **Application-Level Auditing**: Best for selective auditing33 - Pros: Flexible, lower database overhead, easier debugging34 - Cons: Requires application changes, can miss direct database changes353. **Change Data Capture (CDC)**: Best for real-time streaming36 - Pros: Minimal performance impact, real-time analysis, external processing37 - Cons: Complex setup, requires CDC infrastructure384. **Native Database Logs**: Best for general monitoring39 - Pros: No setup, captures everything, built-in40 - Cons: High volume, limited retention, difficult to query4142### Step 3: Design Audit Table Schema431. Create audit log table with these core columns:44 - audit_id (primary key), table_name, action (INSERT/UPDATE/DELETE)45 - record_id (reference to audited record), old_values (JSON), new_values (JSON)46 - changed_by (user), changed_at (timestamp), client_ip, application_context472. Add indexes on table_name, changed_at, changed_by for query performance483. Partition audit table by date for efficient archival494. Configure tablespace for audit logs separate from primary data5051### Step 4: Implement Audit Mechanism521. For trigger-based: Create AFTER INSERT/UPDATE/DELETE triggers on each table532. Capture old and new row values as JSON in trigger body543. Record user context (CURRENT_USER, application user, IP address)554. Handle trigger failures gracefully (log but don't block operations)565. Test triggers with sample data modifications5758### Step 5: Configure Audit Log Management591. Set up automated archival of old audit logs to cold storage602. Implement audit log analysis queries for common compliance reports613. Create alerts for suspicious activities (bulk deletes, off-hours changes)624. Document audit log query procedures for compliance auditors635. Schedule periodic audit log reviews with security team6465### Step 6: Validate Audit Implementation661. Perform test operations on audited tables672. Verify audit log entries are created with complete data683. Test audit log queries for performance694. Confirm audit logs cannot be modified by regular users705. Document audit implementation for compliance documentation7172## Output7374This skill produces:7576**Audit Table Schema**: SQL DDL for audit log table with proper indexes and partitioning7778**Audit Triggers**: Database triggers for automatic audit log population on data changes7980**Audit Log Queries**: Pre-built SQL queries for compliance reports and change tracking8182**Implementation Documentation**: Configuration details, trigger logic, and maintenance procedures8384**Compliance Report Templates**: SQL queries for GDPR access logs, SOX change reports, etc.8586## Error Handling8788**Trigger Performance Issues**:89- Audit only critical tables, not all tables90- Use asynchronous audit logging with queue systems91- Batch audit log inserts instead of individual inserts92- Monitor trigger execution time and optimize trigger logic9394**Audit Table Growth**:95- Implement automated archival of audit logs older than retention period96- Partition audit table by month or quarter97- Compress old audit log partitions98- Move historical audit logs to cheaper storage tiers99100**Missing Audit Context**:101- Set application context in database session before operations102- Use database session variables to pass user identity103- Implement connection pooling with session initialization104- Log application user separately from database user105106**Permission Issues**:107- Ensure audit log table is writable by trigger execution context108- Grant INSERT on audit table to all database users109- Protect audit table from modifications (no UPDATE/DELETE grants)110- Use separate schema for audit tables with restricted access111112## Resources113114**Audit Table Templates**:115- PostgreSQL audit trigger: `{baseDir}/templates/postgresql-audit-trigger.sql`116- MySQL audit trigger: `{baseDir}/templates/mysql-audit-trigger.sql`117- Audit table schema: `{baseDir}/templates/audit-table-schema.sql`118119**Compliance Report Queries**: `{baseDir}/queries/compliance-reports/`120- GDPR data access report121- SOX change audit report122- User activity summary123- Suspicious activity detection124125**Audit Strategy Guide**: `{baseDir}/docs/audit-strategy-selection.md`126**Performance Tuning**: `{baseDir}/docs/audit-performance-optimization.md`127**Archival Procedures**: `{baseDir}/scripts/audit-archival.sh`128129## Overview130131This skill provides automated assistance for the described functionality.132133## Examples134135Example usage patterns will be demonstrated in context.136137---138> Converted and distributed by [TomeVault](https://tomevault.io/claim/helixdevelopment) — claim your Tome and manage your conversions.139<!-- tomevault:4.0:skill_md:2026-04-15 -->