Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que não consigo criar triggers em objetos pertencentes a SYS?


Você não deve criar qualquer objetos no esquema SYS. Esse usuário faz parte do sistema de gerenciamento de banco de dados Oracle, e alterar seu esquema provavelmente quebrará seu banco de dados. Certamente poderia invalidar seu contrato de suporte da Oracle (se você tiver um). Da documentação:

"A conta administrativa SYS é criada automaticamente quando um banco de dados é criado. Essa conta pode executar todas as funções administrativas do banco de dados. O esquema SYS armazena as tabelas e visualizações base para o dicionário de dados. Essas tabelas e visualizações base são críticas para a operação do Banco de Dados Oracle. SYSschema são manipulados apenas pelo banco de dados e nunca devem ser modificados por nenhum usuário."

Ah, caso você esteja se perguntando, o mesmo se aplica ao SYSTEM também.

Os gatilhos são particularmente propensos a abusos e são uma das principais fontes de problemas de dimensionamento. É por isso que a Oracle nos proíbe de construir triggers no SYS, pois isso pode corromper ou pelo menos impactar o desempenho do dicionário de dados.

Claro que não é isso que está acontecendo aqui. Você construiu suas próprias tabelas em SYS. Bem, solte-os. Agora. Use SYS para criar seu próprio usuário, GHAZAL ou qualquer nome adequado, e conceda a ele os privilégios necessários:CREATE SESSION, CREATE TABLE, CREATE TRIGGER e assim por diante. Em seguida, conecte-se como esse novo usuário para criar suas tabelas e outros objetos de esquema.