sql >> Databasteknik >  >> RDS >> Oracle

Varför kan jag inte skapa utlösare på objekt som ägs av SYS?

Du bör inte skapa någon objekt i SYS-schemat. Den användaren är en del av Oracles databashanteringssystem, och om du ändrar dess schema kommer din databas sannolikt att bryta. Visst kan det ogiltigförklara ditt Oracle-supportavtal (om du har ett). Från dokumentationen:

"Administratörskontot SYS skapas automatiskt när en databas skapas. Detta konto kan utföra alla databasadministrativa funktioner. SYS-schemat lagrar bastabellerna och vyerna för dataordboken. Dessa bastabeller och vyer är kritiska för driften av Oracle Database. Tabeller i SYSschema manipuleras endast av databasen och får aldrig ändras av någon användare."

Åh, om du undrar, detsamma gäller för SYSTEM också.

Triggers är särskilt benägna att missbrukas och är en stor källa till skalningsproblem. Det är därför Oracle förbjuder oss att bygga utlösare i SYS, eftersom det kan korrumpera eller åtminstone påverka prestandan för dataordboken.

Det är naturligtvis inte vad som händer här. Du har byggt dina egna bord i SYS. Släpp dem väl. Nu. Använd SYS för att skapa din egen användare, GHAZAL eller vilket namn som helst, och ge den de nödvändiga privilegierna:SKAPA SESSION, SKAPA TABELL, SKAPA TRIGGER, och så vidare. Anslut sedan som den nya användaren för att skapa dina tabeller och andra schemaobjekt.




  1. Anslutningspoolning med Pgbouncer på PostgreSQL 9.0

  2. Är det möjligt att ta bort från flera tabeller i samma SQL-sats?

  3. Använda MS Access-data i en brevkoppling

  4. Topp 10 bästa praxis i MySQL