Sinonime oracle

Evaluare: 0/5

Sinonime ale Oracle Database sunt aliasuri ale obiectelor bazei de date care servesc în principal pentru a facilita accesul utilizatorilor la obiectele aparținând altor utilizatori, precum și din motive de securitate. Sinonimele ascund identitatea obiectelor care stau la baza și pot fi private sau publice. sinonime publice sunt disponibile tuturor utilizatorilor bazei de date, și sinonime private reprezintă o parte integrantă a schemei utilizatorului individual, precum și alți utilizatori ar trebui să se bazeze pentru a acorda drepturi de acces pentru utilizarea de sinonime private. Sinonimele Oracle pot fi create pentru tabele, vizualizări, vizualizări materializate și pachete și proceduri stocate.







Sinonime Oracle este un instrument foarte puternic în ceea ce privește oferirea de acces utilizatorilor la obiecte care nu fac parte din schemele lor. Toate sinonimele trebuie să fie create explicit cu comanda CREATE SYNONYM. iar obiectele de bază pot fi localizate în aceeași bază de date sau în alte baze de date conectate prin conexiuni de bază de date.

Domeniul de aplicare al sinonimelor Oracle

Există două aplicații principale ale sinonimelor.

  • Pentru a asigura transparența obiectelor. Pot fi create sinonime pentru a asigura transparența obiectelor sursă pentru utilizator.
  • Pentru transparența locației. Sinonimele pot fi create ca aliasuri de tabele și alte obiecte legate de o bază de date non-locală.

La nota! Rețineți că, chiar dacă cunoașteți sinonimul tabelului de schemă, nu aveți neapărat acces la ea. Pentru a accesa acest tabel, trebuie să aveți privilegiile necesare.

Când creați o tabelă sau o procedură, baza de date le creează în schemă, iar ceilalți utilizatori pot să le acceseze utilizând numele schemei dvs. ca prefix al numelui obiectului. Lista de mai jos prezintă mai multe exemple care ilustrează acest punct.

După cum puteți vedea, atunci când utilizatorul SYSTEM încearcă să obțină structura de tabelă fără prefix - numele schemei, Oracle generează o eroare care indică absența tabelului. Pentru a rezolva această problemă, proprietarul schemei trebuie să creeze un sinonim cu același nume ca și tabelul. Imediat ce utilizatorul SYSTEM aplică schema de notație. el poate vedea conținutul mesei.







Creați un sinonim public

Sinonimele publice se referă la o schemă specială de baze de date Oracle, numită PUBLIC. După cum am menționat mai devreme, sinonimele publice sunt vizibile pentru toți utilizatorii bazei de date. Sinonimele publice sunt de obicei create de proprietarul aplicației pentru tabele și alte obiecte, cum ar fi procedurile și pachetele, astfel încât utilizatorii aplicației să poată vedea aceste obiecte.

Următorul cod arată cum se creează un sinonim public pentru tabelul angajaților.

Acum, orice utilizator va putea vedea tabela, pur și simplu tastând numele original. Dacă doriți, utilizând instrucțiunea CREATE SYNONYM, tabelul poate primi un nume diferit. Rețineți că administratorul bazei de date trebuie să acorde în mod explicit privilegiul CREATE PUBLIC SYNONYM utilizatorului h, astfel încât el să poată crea sinonime publice.

Capacitatea de a vedea o tabelă printr-un sinonim public (sau privat) nu înseamnă că puteți efectua operațiuni SELECT, INSERT, UPDATE sau DELETE pe ea. Pentru a efectua astfel de operațiuni, utilizatorul are nevoie de privilegii speciale pentru a accesa obiectul sursă, emis de proprietarul aplicației direct sau prin roluri.

Crearea unui sinonim privat

Sinonimele private, spre deosebire de cele publice, sunt vizibile numai în schema care deține tabela sau obiectul. Puteți crea sinonime private atunci când trebuie să accesați același tabel în contexte diferite, sub diferite nume. Ele sunt create exact în același mod ca și cele publice, dar fără cuvântul cheie PUBLIC în instrucțiunea CREATE.

Următorul exemplu arată modul de creare a unui sinonim privat numit adresă pentru tabelul de locații. Rețineți că odată creat, un sinonim privat poate fi accesat ca nume de tabel original.

Distrugerea sinonimului

Ambele sinonime private și publice sunt distruse de comanda DROP SYNONYM, dar există o diferență. Dacă ștergeți un sinonim public după cuvântul cheie DROP, cuvântul cheie PUBLIC trebuie să fie localizat.

Mai jos este un exemplu de distrugere a unui sinonim privat:

Gestionați sinonimele

Ecranul DBA_SYNONYMS conține informații despre toate sinonimele din baza de date. Sinonimele se bazează pe tabelele de bază care stau la baza și puteți găsi numele obiectelor de bază executând o interogare similară cu următoarea:

Utilizați vizualizarea DBA_SYNONYMS pentru a afla numele tabelelor care stau în spatele sinonimelor.

Trecerea la o altă schemă

Dacă utilizați în mod constant tabele aparținând unei alte scheme și în această schemă nu există sinonime, trebuie să specificați un calificator de schemă înaintea fiecărui nume de tabel. De exemplu, pentru a accesa tabelul emp care aparține utilizatorului scott, trebuie să specificați emp.scott. Pentru a evita acest lucru, puteți utiliza următoarea instrucțiune ALTER SESSION SET SCHEMA.

Utilizarea instrucțiunii ALTER SESSION nu acordă automat niciun privilegiu. Pentru a interoga tabela emp fără calificatorul de schemă, așa cum se arată în exemplul anterior, utilizatorul trebuie să aibă privilegiul SELECT pe tabela emp.







Articole similare

Trimiteți-le prietenilor: