Nadzor dostopa do podatkov s pogledi v SQL

click fraud protection

Zbirka podatkov pogledi zmanjšujejo zapletenost izkušnje končnega uporabnika in omejujejo dostop uporabnikov do podatkov v tabelah baz podatkov. Pogled v bistvu uporablja rezultate a poizvedba v zbirki podatkov za dinamično zapolnitev vsebine tabele navidezne baze podatkov.

Zakaj uporabljati poglede?

Obstajata dva glavna razloga, da uporabnikom omogočimo dostop do podatkov prek pogledov, namesto da bi jim omogočili neposreden dostop do tabel zbirke podatkov:

  • Pogledi zagotavljajo preprosto, natančno varnost. Uporabite pogled za omejitev podatkov, ki jih lahko uporabnik vidi v tabeli. Če imate na primer tabelo zaposlenih in želite nekaterim uporabnikom omogočiti dostop do evidenc redno zaposlenih, lahko ustvarite pogled, ki vsebuje samo te zapise. To je veliko lažje kot alternativa (ustvarjanje in vzdrževanje senčne tabele) in zagotavlja celovitost podatkov.
  • Pogledi poenostavljajo uporabniško izkušnjo. Pogledi skrivajo zapletene podrobnosti tabel zbirke podatkov pred končnimi uporabniki, ki jih ni treba videti. Če uporabnik odvrže vsebino pogleda, ne bo videl stolpcev tabele, ki jih pogled ni izbral in morda ne bo razumel. To jih ščiti pred zmedo, ki jo povzročajo slabo imenovani stolpci, enolični identifikatorji in
    instagram viewer
    tipke na mizi.

Ustvarjanje pogleda

Ustvarjanje pogleda je povsem preprosto: preprosto ustvarite poizvedbo, ki vsebuje omejitve, ki jih želite uveljaviti, in jo postavite v ukaz CREATE VIEW. Tu je splošna skladnja:

USTVARI POGLED ime pogleda AS

Če želite na primer ustvariti pogled zaposlenega za polni delovni čas, izdajte naslednji ukaz:

USTVARI POGLED polni AS
IZBERI ime, priimek, ID_zaposlenega
OD zaposlenih
KJE status = 'FT';

Spreminjanje pogleda

Spreminjanje vsebine pogleda uporablja popolnoma enako sintakso kot ustvarjanje pogleda, vendar uporabite ukaz ALTER VIEW namesto ukaza CREATE VIEW. Če želite na primer dodati omejitev pogledu s polnim delovnim časom, ki rezultatom doda telefonsko številko zaposlenega, izdajte naslednji ukaz:

ALTER VIEW polni AS
IZBERI ime, priimek, ID_zaposlenega, telefon
OD zaposlenih
KJE status = 'FT';

Brisanje pogleda

Pogled iz baze podatkov preprosto odstranite z ukazom DROP VIEW. Če želite na primer izbrisati pogled zaposlenega za polni delovni čas, uporabite naslednji ukaz:

DROP VIEW polni delovni čas; 

Pogledi vs. Materializirani pogledi

Pogled je navidezna tabela. A materializiran pogled je isti pogled zapisan na disk in do katerega se dostopa, kot da bi bil tabela sama po sebi.

Ko zaženete poizvedbo proti pogledu, sekundarna poizvedba, ki izvor pogleda, izvrši v realnem času, nato pa se ti rezultati vrnejo nazaj v prvotno glavno poizvedbo. Če so vaši pogledi izjemno zapleteni ali če vaša glavna poizvedba zahteva veliko število razpršenih združitev med več tabelami in pogledi, bo vaša glavna poizvedba izvedena s hitrostjo želve.

Ustvarjeni pogled pospeši izvajanje poizvedbe, ker deluje kot vnaprej sestavljena poizvedba, zapisana na disk, in se zato izvede tako hitro kot tabela. Vendar pa so materializirani pogledi le tako dobri kot postopki dogodkov, ki jih osvežijo. Na dolgi rok materializirani pogledi z dobrim vzdrževanjem pospešijo stvari z majhnim kompromisom v času zakasnitve osveževanja, brez potrebujete kup senčnih tabel, ki lahko postanejo mirujoče in pojedo prostor na disku ali pa poiščejo poizvedbe nekoga drugega neprimerno.

instagram story viewer