Oracle
 sql >> база данни >  >> RDS >> Oracle

Създайте тригер на Oracle от потребител, който слуша събития за друг потребител

Да, можеш. Потребителят трябва да има CREATE ANY TRIGGER :

Като 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;

Като:

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

Като 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

Ще трябва да настроите фино този тригер, той ще се задейства не само за CREATE TABLE но за всички CREATE изявления...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете условно колона в заявка на Oracle

  2. sql (oracle) отчита броя на припокриващите се интервали

  3. Само архивиране на SQL схема?

  4. Изтриване на записи от една таблица, свързани към друга таблица SQL

  5. RODBC заявката не връща данни