Autor Beitrag
lila3
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 01.12.06 14:25 
Hallo,
ich habe ein Delphi.NET Programm geschrieben, das das Auditing auf einer Oracle-DB für bestimmte User und Aktionen ein- und ausschaltet und die gewünschten Ergebnisse aus der View dba_audit_trail auflistet.

Nun erlebe ich das Phänomen, dass, wenn ich ein "Delete from sys.aud$" vom Programm aus absetze, zwar die meisten Datensätze gelöscht werden, aber jedesmal eine neuer Datensatz über diesen DELETE-Vorgang in der Tabelle aud$ erzeugt wird, der sich auch durch ein erneutes Delete nicht löschen lässt. Stattdessen wird ein weiterer Datensatz erzeugt, es wird also jedesmal einer mehr, während die anderen Datensätze gelöscht werden.
Das passiert unabhängig davon, ob ich das Auditing ein- oder ausgeschaltet habe.

Wenn ich dagegen ein "delete from sys.aud$" außerhalb des Programms durchführe, wird die Tabelle normal geleert.

Hier sind die relevanten Ausschnitte aus dem Programm:

var
conn: OleDBConnection;
cmd: OleDbCommand;
qry: String;

conn := OleDbConnection.Create;
conn.ConnectionString := 'Provider="MSDAORA.1";User ID="Username";Data Source="Alias";Persist Security Info=True;Password="Passwort";
conn.Open;

qry := 'Delete from sys.aud$';
cmd := OleDbCommand.Create(qry, conn);
cmd.ExecuteNonQuery;


Kann mir irgendjemand erklären...

- wodurch der Datensatz produziert wird, obwohl das Auditing aus ist
- wie ich es vermeiden kann
- und wie ich die Datensätze vom Programm aus löschen kann?

Vielen Dank!