0

We have data in Oracle (Exadata) table identified by PK (say id). I have to figure out which users are accessing which rows in this Oracle table.

  1. I know that there is way to have Oracle capture information about "which users has accessed a table".
  2. There is also segment information Oracle capture in v$segment_statistics but that doesn't tell me which rows are being accessed by which user.
  3. But I am looking if there is a way for Oracle to capture "which users has accessed which rowid via SELECT queries".
    My administrator is alluding that there is no way for Oracle to capture this info.
rp1
  • 159
  • 2
  • 10
  • 1
    Does this help? [link](https://docs.oracle.com/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG50000) – Mike Tung Jan 15 '18 at 18:11
  • You audit SQL statements, which you could replay (perhaps using [flashback query](https://docs.oracle.com/database/121/ADFNS/adfns_flashback.htm)) to check what results they gave. I doubt there is any log of actual rows accessed. – William Robertson Jan 15 '18 at 19:04
  • 1
    You can tell your DBA they're wrong ;-) Use Fine-Grained Auditing to do this. You have to set FGA policies for specific tables (it will incur a overhead to record all that activity so you don't want to audit everything). [Find out more](https://docs.oracle.com/cd/E11882_01/network.112/e36292/auditing.htm#DBSEG525). – APC Jan 15 '18 at 19:05

0 Answers0