Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Utwórz wyzwalacz w Oracle od użytkownika, który nasłuchuje zdarzeń innego użytkownika

Tak, możesz. Użytkownik musi mieć CREATE ANY TRIGGER :

Jako administrator:

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;

Jako:

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

Jako 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

Będziesz musiał dostroić ten wyzwalacz, uruchomi się nie tylko dla CREATE TABLE ale dla wszystkich CREATE oświadczenia...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-02267:typ kolumny niezgodny z typem kolumny odniesienia

  2. Szukaj podobnych słów za pomocą indeksu

  3. WSJDBCConnection nie zawija obiektów typu Oracle jdbc Connection

  4. Czy istnieje sposób na ulepszenie zapytania MERGE?

  5. Udowodnienie równoważności zapytań SQL