sql >> Database >  >> RDS >> Oracle

Creëer trigger op Oracle van een gebruiker die luistert naar gebeurtenissen voor een andere gebruiker

Ja, dat kan. De gebruiker moet CREATE ANY TRIGGER . hebben :

Als DBA:

CREATE USER a IDENTIFIED BY a;
GRANT CREATE SESSION, CREATE ANY TRIGGER TO a;

CREATE USER b IDENTIFIED BY b;
GRANT CREATE SESSION TO b;

Als een:

CREATE OR REPLACE TRIGGER a.create_trigger
  BEFORE CREATE ON b.SCHEMA
BEGIN
  raise_application_error(num => -20000,  msg=> 'create_trigger vetoes');
END;
/

Als b:

CREATE TABLE t(i INT);
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-20000: create_trigger vetoes
ORA-06512: at line 2

Je zult deze trigger moeten verfijnen, hij wordt niet alleen geactiveerd voor CREATE TABLE maar voor iedereen CREATE verklaringen...




  1. Hoe selecteer ik TOP 5 PERCENT van elke groep?

  2. MySQL Sortering van alle tabellen wijzigen

  3. Hoe converteer ik deze MySQL-verklaring naar symfony Propel?

  4. Is een aanroep van PDOStatement::closeCursor() nodig als het instructieobject nog niet is ingesteld?