2012-05-24 3 views
2

Quelqu'un (ou quelque chose) a effectivement mis à jour une valeur dans ma table à tort. J'essaie de savoir quand la mise à jour s'est produite. Malheureusement, aucun déclencheur d'audit n'est créé pour ladite table.Sondages d'audit Oracle DB

Existe-t-il d'autres moyens ou journaux que je peux vérifier et vérifier quelles instructions SQL ont été exécutées à quel moment?

J'avais essayé de regarder la table v $ sql, mais je ne pense pas que cette table capture toutes les instructions SQL exécutées sur la base de données. Par exemple. J'ai spécifiquement fait une instruction UPDATE, mais elle n'est pas capturée dans la table v $ sql. Est-ce que je peux regarder le redo.log?

Cependant, je ne sais pas comment interpréter ce journal.

Répondre

2

Votre seule vraie option est logminer, ce qui n'est pas pour les faibles de cœur.

La documentation est ici: http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm

v$sql rangs peuvent se âgés après un certain temps. Avez-vous tenu compte de la sensibilité à la casse lors de la recherche dans v$sql?

select * from v$sql where upper(sql_fulltext) like '%UPDATE%'; 
+0

En effet, il n'est pas pour les timorés. :(Tout autre outil pour lire le redo.log? En outre, j'ai pris en compte la sensibilité à la casse lorsque je regarde v $ sql.Je comprends que les lignes vieillissent, mais l'enregistrement que j'ai mis à jour était juste récent et immédiat – cooldude

+0

pas d'autre manière j'ai peur. – Phil