Oracle
 sql >> Base de données >  >> RDS >> Oracle

Accorder la création de n'importe quel déclencheur vs accorder la création d'un déclencheur

Dans la plupart des cas, le propriétaire du déclencheur est également le propriétaire de la table (ou de la vue) sur laquelle le déclencheur est basé. Dans ces cas, le propriétaire de la table, avec CREATE TRIGGER, peut créer des déclencheurs de création sur sa propre table.

CREATE ANY TRIGGER permet à l'utilisateur de créer un déclencheur appartenant à n'importe quel utilisateur sur n'importe quelle table. C'est une grande faille de sécurité car ils peuvent créer un déclencheur appartenant à un utilisateur privilégié sur une table qu'ils possèdent ou dans laquelle ils peuvent s'insérer. Comme ils peuvent insérer dans cette table, ils peuvent forcer l'exécution du déclencheur et le déclencheur s'exécute avec les privilèges du propriétaire du déclencheur. L'effet est qu'un utilisateur avec le privilège CREATE ANY TRIGGER peut créer et exécuter du code en tant qu'utilisateur privilégié (similaire à CREATE ANY PROCEDURE plus EXECUTE ANY PROCEDURE).

Limitez-vous au moins de personnes possible et auditez de manière appropriée.