1. Vad är en synonym?
En synonym är ett annat namn på ett databasobjekt. Ofta skapar man synonymer för databasobjekt som ligger utanför det egna schemat. I detta fall är det viktigt att komma ihåg att synonymen inte ger dig några rättigheter till det underliggande objektet, dessa rättigheter måste tilldelas av systemadministratören eller ägaren av det andra schemat. Det finns två typer av synonymer:
- Privat synonym: Kan bara ses av användaren som skapade den.
- Publik synonym: En publik synonym kan ses av alla användare i databasen. En publik synonym ger däremot inte alla användare rätt att använda det objekt som synonymen syftar på. Man kan bara skapa publika synonymer på sina egna objekt, inte på andra schemaägares objekt.
Följande rättigheter kan behöva ges ut:
- För att en användare ska kunna skapa en publik synonym krävs privilegiet CREATE PUBLIC SYNONYM.
- För att en användare ska kunna ta bort en publik synonym krävs privilegiet DROP PUBLIC SYNONYM.
2. CREATE SYNONYM
Syntaxen för att skapa en synonym är:
CREATE [OR REPLACE] [PUBLIC] SYNONYM
FOR [schema.]objekt[@dblink];
|
Nyckelorden förklaras nedan:
- PUBLIC: Skapar en publik synonym. Utan detta nyckelord blir synonymen privat.
- @dblink: Ofta vill man via en synonym länka till scheman i andra databaser i nätverket. Då kan dblink vara en URL eller namnet på en viss dator i nätverket.
Först skapar vi en privat synonym för för tabellen EMP:
SQL> CREATE SYNONYM anstallda FOR emp;
Synonym är skapad.
|
Nu skapar vi en publik synonym:
SQL> CREATE PUBLIC SYNONYM anstallda_pub FOR emp;
Synonym är skapad.
|
3. DROP SYNONYM
Syntaxen för att ta bort en synonym är:
DROP [PUBLIC] SYNONYM synonymnamn [FORCE];
|
Nyckelorden förklaras nedan:
- PUBLIC: Nödvändigt för att kasta en publik synonym.
- FORCE: Kastar synonymen oberoende av existerande beroenden.
Vi kastar synonymen ANSTALLDA:
SQL> DROP SYNONYM anstallda;
Synonym är borttagen.
|
Det funkade. Vi kastar den publika synonymen:
SQL> DROP PUBLIC SYNONYM anstallda_pub;
Synonym är borttagen.
|