Controlul accesului la date cu vizualizări în SQL

click fraud protection

Bază de date vizualizările reduc complexitatea experienței utilizatorului final și limitează accesul utilizatorilor la datele conținute în tabelele bazei de date. În esență, o vizualizare folosește rezultatele unui interogare bază de date pentru a popula dinamic conținutul unei tabele de baze de date virtuale.

De ce să folosiți vizualizări?

Există două motive principale pentru a oferi utilizatorilor acces la date prin intermediul vizualizărilor, mai degrabă decât să le oferiți acces direct la tabelele bazei de date:

  • Vizualizările oferă securitate simplă și granulară. Utilizați o vizualizare pentru a limita datele pe care un utilizator este permis să le vadă într-un tabel. De exemplu, dacă aveți un tabel pentru angajați și doriți să oferiți unor utilizatori acces la înregistrările angajaților cu normă întreagă, puteți crea o vizualizare care să conțină numai acele înregistrări. Acest lucru este mult mai ușor decât alternativa (crearea și menținerea unei tabele shadow) și asigură integritatea datelor.
  • instagram viewer
  • Vizualizările simplifică experiența utilizatorului. Vizualizările ascund detalii complexe ale tabelelor bazei de date de la utilizatorii finali care nu au nevoie să le vadă. Dacă un utilizator renunță la conținutul unei vizualizări, nu va vedea coloanele tabelului care nu sunt selectate de vizualizare și s-ar putea să nu înțeleagă. Acest lucru îi protejează de confuzia cauzată de coloane slab denumite, identificatori unici și chei de masă.

Crearea unei vizualizări

Crearea unei vizualizări este destul de simplă: pur și simplu creați o interogare care conține restricțiile pe care doriți să le aplicați și plasați-o în comanda CREATE VIEW. Iată sintaxa generală:

CREATE VIEW viewname AS

De exemplu, pentru a crea vizualizarea angajatului cu normă întreagă, lansați următoarea comandă:

CREAȚI VIZUALIZARE cu normă întreagă ca
SELECT prenume, prenume, număr_ angajat
DE LA angajați
WHERE status = 'FT';

Modificarea unei vizualizări

Schimbarea conținutului unei vizualizări utilizează exact aceeași sintaxă ca și crearea unei vizualizări, dar utilizați comanda ALTER VIEW în loc de comanda CREATE VIEW. De exemplu, pentru a adăuga o restricție la vizualizarea cu normă întreagă care adaugă numărul de telefon al angajatului la rezultate, lansați următoarea comandă:

ALTER VIEW AS full time AS
SELECT prenumele, prenumele, numărul angajatului, telefonul
DE LA angajați
WHERE status = 'FT';

Ștergerea unei vizualizări

Este simplu să eliminați o vizualizare dintr-o bază de date folosind comanda DROP VIEW. De exemplu, pentru a șterge vizualizarea angajatului cu normă întreagă, utilizați următoarea comandă:

DROP VIEW cu normă întreagă; 

Vizualizări vs. Vizualizări materializate

O vizualizare este un tabel virtual. A vedere concretizată este aceeași vizualizare scrisă pe disc și accesată ca și cum ar fi o tabelă în sine.

Când executați o interogare împotriva unei vizualizări, interogarea secundară care sursează vizualizarea se execută în timp real, apoi acele rezultate se alimentează din nou în interogarea principală originală. Dacă vizualizările dvs. sunt excepțional de complexe sau interogarea principală necesită un număr mare de îmbinări hash între mai multe tabele și vizualizări, interogarea principală se va executa cu viteza unei broaște țestoase.

O vizualizare materializată accelerează execuția interogării deoarece funcționează ca o interogare precompilată scrisă pe disc și, prin urmare, se execută la fel de repede ca un tabel. Cu toate acestea, vizualizările materializate sunt la fel de bune ca și procedurile de eveniment care le reîmprospătează. Pe termen lung, cu o întreținere bună, vizualizările materializate accelerează lucrurile cu un mic compromis în timpul de reîmprospătare a întârzierii, fără nevoie de o grămadă de tabele shadow care pot deveni inactive și fie consumă spațiu pe disc, fie sursă întrebările altcuiva necorespunzător.

instagram story viewer