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

Pourquoi ne puis-je pas créer de déclencheurs sur des objets appartenant à SYS ?

Vous ne devriez pas créer tout objets dans le schéma SYS. Cet utilisateur fait partie du système de gestion de base de données Oracle et la modification de son schéma risque de casser votre base de données. Cela pourrait certainement invalider votre contrat de support Oracle (si vous en avez un). À partir de la documentation :

"Le compte administratif SYS est automatiquement créé lors de la création d'une base de données. Ce compte peut exécuter toutes les fonctions d'administration de la base de données. Le schéma SYS stocke les tables et vues de base pour le dictionnaire de données. Ces tables et vues de base sont essentielles au fonctionnement d'Oracle Database. Tables dans le Les schémas SYS ne sont manipulés que par la base de données et ne doivent jamais être modifiés par un utilisateur."

Oh, au cas où vous vous poseriez la question, il en va de même pour SYSTEM.

Les déclencheurs sont particulièrement sujets aux abus et sont une source majeure de problèmes de mise à l'échelle. C'est pourquoi Oracle nous interdit de créer des déclencheurs dans SYS, car cela pourrait corrompre ou au moins affecter les performances du dictionnaire de données.

Bien sûr, ce n'est pas ce qui se passe ici. Vous avez créé vos propres tables dans SYS. Eh bien, laissez-les tomber. À présent. Utilisez SYS pour créer votre propre utilisateur, GHAZAL ou tout autre nom approprié, et accordez-lui les privilèges requis :CREATE SESSION, CREATE TABLE, CREATE TRIGGER, etc. Connectez-vous ensuite en tant que nouvel utilisateur pour créer vos tables et autres objets de schéma.