I want to delete a record from a table and no one should ever be able to recover the deleted data. I have done delete operation but the record is still in the undo segments. And one can do flashback and retrive that row.
There is likely a more streamlined set of steps, but here is a start.
- Delete the data out of any materialized views or home grown replication methods using triggers or the like.
- Delete the data out of any database audit tables.
- Change the database to noarchivelog.
- Create a new undo tablespace.
- Switch log files until all are archived.
- Shutdown the database.
- Turn off and purge any storage or virtual machine level snapshot capability.
- Delete all trace files that may contain the data.
- Delete all backups sets including archive log backups that could contain the data.
- Delete all OS audit logs that could contain the data.
- Visit any computer that may have the data cached or displayed and destroy it there.
- Visit any other storage devices the data may have been copied to and purge those.
- Find any hard copies of the data and destroy those.
- If someone memorized the data, memory erasure is beyond the scope of this site.