[interbase] trigger die ingelogde user opslaat

Pagina: 1
Acties:

  • Hardcell
  • Registratie: November 2004
  • Laatst online: 03-02-2023
Hoi!

Simpel vraagje: is het mogelijk in interbase om in een trigger op een bepaalde tabel achter de username waaronder je bent ingelogd te komen? Ik wil dit gaan gebruiken voor een audit op record niveau, dus achter ieder record een last_update_timestamp en last_update_user. Leek me het makkelijkst om dit met triggers af te handelen ipv softwarematig omdat er vanaf internet en vanaf diverse applicaties in deze db gerotzooit wordt..

  • Pino
  • Registratie: Oktober 2001
  • Laatst online: 10-04 10:57
Volgens mij is er gewoon de variabele USER beschikbaar.

[edit]

Ja dus, ik heb het even voor je getest:
SQL:
1
2
3
4
5
6
7
8
9
10
11
SET TERM ^ ;
CREATE TRIGGER SET_USER FOR TEST 
ACTIVE BEFORE INSERT POSITION 0
AS
  BEGIN
    NEW.GEBRUIKER = USER;
  END
 ^

COMMIT WORK ^
SET TERM ;^


op deze database:
SQL:
1
2
3
4
5
6
CREATE TABLE TEST 
(
  ID     INTEGER,
  NAAM   VARCHAR(50),
  GEBRUIKER  VARCHAR(20)
);


met een "insert into test (id, naam) values (1, 'Jaap');" wordt de db user in gebruiker opgeslagen.

Voor de volledigheid, ik heb getest in Firebird 1.5. Ik neem aan dat het in Interbase vanaf versie 5 ook prima gaat.

[ Voor 112% gewijzigd door Pino op 26-01-2006 22:56 ]

"If you don't know where you are going, any road will take you there"