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

Предоставяне на създаване на произволен тригер срещу предоставяне на създаване на тригер

В повечето случаи собственикът на тригера е собственик и на таблицата (или изгледа), на която се основава тригерът. В тези случаи собственикът на таблицата с CREATE TRIGGER може да създаде тригери за създаване на собствената си таблица.

CREATE ANY TRIGGER позволява на потребителя да създаде тригер, притежаван от всеки потребител на всяка таблица. Това е голяма дупка в сигурността, защото те могат да създадат тригер, притежаван от привилегирован потребител на маса, която притежават или могат да вмъкнат в нея. Тъй като те могат да вмъкват в тази таблица, те могат да принудят тригера да се изпълни и тригерът се изпълнява с привилегиите на собственика на тригера. Ефектът е, че потребител с привилегия CREATE ANY TRIGGER може да създава и изпълнява код като привилегирован потребител (подобно на CREATE ANY PROCEDURE плюс EXECUTE ANY PROCEDURE).

Ограничете до възможно най-малко хора и проверете по подходящ начин.



  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 за разрешаване на нулева стойност, IF

  2. Замяна на функция в Oracle SQL

  3. ora-01406 Грешка при извличане на стойности чрез OCI

  4. Как да изпълня частни процедури в пакет на Oracle?

  5. java.sql.SQLException:невалидни аргументи в повикването