
How to Audit Queries with Fine-Grained Auditing (DBMS_FGA)
Record only the queries that read sensitive columns of chosen rows, and run a handler procedure every time one happens.
Posts tagged AI-Assisted are created with support from artificial intelligence. I use AI tools to research, draft, and refine ideas—combining human insight with machine precision to deliver clear, informed, and creative content.

Record only the queries that read sensitive columns of chosen rows, and run a handler procedure every time one happens.

Keep every row visible but show sensitive columns such as e-mail and phone only where a security policy allows it.

Encrypt data and detect any change to it with AES-GCM, using an authentication tag and additional authenticated data.

Protect sensitive values with AES-256 encryption in PL/SQL, with random keys and a new initialization vector for every value.

Have Oracle call your PL/SQL procedure after committed changes to the tables a query reads, with the table, operation, and rows.

Let sessions wait for named events and wake them with a message that is delivered when the signaling transaction commits.

Send packed messages from one session to another through named pipes in memory, and keep a cached value in a singleton pipe.

Create a sharded, high-throughput event queue in one call, publish JSON events, and read them as a subscriber.

Deliver each queue message to several subscribers, filter what each receives with rules, and dequeue by consumer name.

Take messages off a queue in priority order, wait for new ones, filter by correlation ID, and browse without removing.

Add messages to a queue with priorities, correlation IDs, expiration, and delays, committed together with your data.

Create a queue table and a queue for your own message type, start it, and stop enqueuing or dequeuing separately.

Maintain old code that uses DBMS_JOB, see how its jobs become Scheduler jobs, and map each call to DBMS_SCHEDULER.

Run load, check, and report steps as one Scheduler job, with rules that start the next step on success or failure.

Find the error of a failed Scheduler job in the run log, and stop a job that keeps failing with the MAX_FAILURES attribute.

Define what to run as a program with arguments and when as a named schedule, and combine them in jobs with argument values.

Describe when Scheduler jobs repeat with FREQ, INTERVAL, and BY clauses, and test the run dates before you schedule anything.

Schedule PL/SQL to run nightly with one call, run it on demand to test it, check its runs, and stop or drop jobs.