CATEGORII DOCUMENTE |
O legatura intre doua baze de date (database link) este un obiect al unei scheme dintr-una din baze, care permite accesarea obiectelor din cealalta baza de date. A doua baza poate sa nu apartina sistemului Oracle.
Odata creata o legatura, aceasta poate fi utilizata in
instructiunile SQL pentru a face
referinta la tabele sau vizualizari dintr-o alta baza de date, prin sufixarea
numelor acestora cu sirul de caractere
nume_legatura_bd. Prin intermediul unei
legaturi se pot interoga tabele sau vizualizari din cealalta baza de date. De
asemenea, aceste obiecte distante pot constitui subiectul instructiunilor INSERT, UPDATE, DELETE sau LOCK TABLE.
O legatura intre baze de date se creeaza prin comanda CREATE DATABASE LINK, care are urmatoarea sintaxa simplificata:
CREATE [SHARED] [PUBLIC] DATABASE LINK nume_legatura_bd
[
| clauza_autentificare} ] [USING 'sir_conectare'];
Cuvantul cheie SHARED determina utilizarea unei singure conexiuni de retea pentru a crea o legatura publica intre bazele de date. Aceasta va putea fi folosita de mai multi utilizatori.
Cuvantul cheie PUBLIC determina crearea unei legaturi publice intre bazele de date. O astfel de legatura este disponibila tuturor utilizatorilor. Daca se omite aceasta optiune, legatura este privata si, in acest fel, disponibila numai utilizatorului care a creat-o.
Prin nume_legatura_bd se poate specifica numele complet sau partial al legaturii bazei de date. Daca se precizeaza numai numele bazei de date, sistemul va adauga implicit domeniul bazei locale.
O legatura intre baze de date nu poate fi creata in schema altui utilizator. De alfel, nume_legatura_bd nu poate fi prefixat de numele unei scheme.
Clauza USING specifica numele serviciului corespunzator bazei de date distante. Daca se precizeaza doar numele bazei, sistemul adauga implicit numele domeniului. Prin urmare, daca numele domeniului bazei distante este diferit de numele domeniului bazei curente, trebuie specificat intreg numele serviciului.
Exemplu
a) Sa se defineasca o legatura de baze de date publica partajata care face referinta la baza de date specificata prin numele de serviciu arta.
CREATE SHARED PUBLIC DATABASE LINK distantClauza CONNECT TO permite activarea conexiunii la baza distanta. Cu ajutorul optiunii CURRENT_USER se poate crea o legatura a utilizatorului curent. Acesta trebuie sa aiba un cont valid in baza de date distanta si sa fie un utilizator global.
Clauza IDENTIFIED BY specifica numele utilizatorului si parola pentru conexiunea la baza de date distanta, creand o legatura a unui utilizator fixat. In absenta acestei clauze, legatura va folosi numele si parola fiecarui utilizator care este conectat la baza.
ExempluSpecificarea numelui utilizatorului si a parolei pentru instanta destinatie are loc in clauza_autentificare. Aceasta informatie este folosita pentru validarea utilizatorului pe server-ul distant si este necesara din considerente de securitate. Numele si parola sunt utilizate exclusiv pentru autentificare, nefiind efectuata nici o alta operatie in numele acestui utilizator. Clauza este obligatorie daca se precizeaza cuvantul cheie SHARED.
Exemplu
Sa se defineasca o legatura a utilizatorului curent catre baza de date distant, utilizand numele intreg al serviciului ca identificator al legaturii.
CREATE DATABASE LINK distant.info.univ.ro
CONNECT TO CURRENT_USER USING 'distant';
Sa se defineasca un sinonim care sa mascheze faptul ca tabelul opera al schemei student se afla pe baza de date distant.
CREATE SYNONYM tab_opera
FOR student.opera@distant.info.univ.ro;
Odata accesata, o legatura catre o baza de date ramane deschisa pana la inchiderea sesiunii. O legatura este deschisa in sensul ca exista un proces activ pe fiecare dintre bazele de date distante accesate prin legatura.
La inchiderea unei sesiuni, legaturile care au fost active vor fi inchise in mod automat. Daca se stabileste o conexiune de retea care nu este utilizata frecvent in aplicatie, poate fi utila inchiderea manuala a legaturii active din sesiunea curenta. Instructiunea care permite acest lucru este urmatoarea:
ALTER SESSION CLOSE DATABASE LINK nume_legatura_bd
Suprimarea unei legaturi catre o baza de date se realizeaza prin comanda:
DROP [PUBLIC] DATABASE LINK nume_legatura_bd;
In cazul stergerii unei legaturi private, aceasta trebuie sa apartina schemei utilizatorului care initiaza suprimarea. Suprimarea unei legaturi publice necesita privilegiul corespunzator (DROP PUBLIC DATABASE LINK).
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1282
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved