Riadenie prístupu k údajom pomocou zobrazení v prostredí SQL

Databáza zobrazenia znižujú zložitosť dojmu koncového používateľa a obmedzujú prístup používateľov k údajom obsiahnutým v databázových tabuľkách. Zobrazenie v zásade využíva výsledky a databázový dotaz na dynamické naplnenie obsahu tabuľky virtuálnej databázy.

Prečo používať zobrazenia?

Existujú dva hlavné dôvody, ktoré poskytujú používateľom prístup k údajom prostredníctvom zobrazení, a nie priamym prístupom k tabuľkám databázy:

  • Pohľady poskytujú jednoduché a podrobné zabezpečenie. Použite zobrazenie na obmedzenie údajov, ktoré môže používateľ vidieť v tabuľke. Napríklad, ak máte tabuľku zamestnancov a chcete niektorým používateľom poskytnúť prístup k záznamom zamestnancov na plný úväzok, môžete vytvoriť zobrazenie, ktoré obsahuje iba tieto záznamy. To je oveľa jednoduchšie ako alternatíva (vytváranie a udržiavanie tieňovej tabuľky) a zaisťuje sa integrita údajov.
  • Zobrazenia zjednodušujú používateľskú skúsenosť. Zobrazenia skrývajú komplexné podrobnosti tabuliek databázy pred koncovými používateľmi, ktorí ich nemusia vidieť. Ak používateľ vypíše obsah zobrazenia, neuvidia sa mu stĺpce tabuľky, ktoré nie sú v zobrazení vybrané, a nemusí im rozumieť. To ich chráni pred zmätkom spôsobeným nesprávne pomenovanými stĺpcami, jedinečnými identifikátormi a
    instagram viewer
    kľúče od stola.

Vytvorenie zobrazenia

Vytvorenie pohľadu je celkom jednoduché: Jednoducho vytvorte dotaz, ktorý obsahuje obmedzenia, ktoré chcete vynútiť, a umiestnite ho do príkazu CREATE VIEW. Tu je všeobecná syntax:

VYTVORIŤ ZOBRAZENIE viewname AS

Napríklad na vytvorenie pohľadu zamestnanca na plný úväzok zadajte nasledujúci príkaz:

VYTVORIŤ ZOBRAZENIE na plný úväzok AKO
VYBERTE meno, priezvisko, zamestnanec_id
ZO zamestnancov
WHERE status = 'FT';

Úprava zobrazenia

Pri zmene obsahu zobrazenia sa používa úplne rovnaká syntax ako pri vytváraní zobrazenia, namiesto príkazu CREATE VIEW však použite príkaz ALTER VIEW. Ak chcete napríklad pridať obmedzenie zobrazenia na plný úväzok, ktoré k výsledkom pridá telefónne číslo zamestnanca, zadajte nasledujúci príkaz:

ZMENIŤ ZOBRAZENIE na plný úväzok AKO
VYBERTE meno, priezvisko, zamestnanec, telefón
ZO zamestnancov
WHERE status = 'FT';

Vymazanie zobrazenia

Je ľahké odstrániť pohľad z databázy pomocou príkazu DROP VIEW. Napríklad na odstránenie pohľadu zamestnanca na plný úväzok použite nasledujúci príkaz:

DROP VIEW na plný úväzok; 

Pohľady vs. Zhmotnené pohľady

Pohľad je virtuálna tabuľka. A zhmotnený pohľad je ten istý pohľad zapísaný na disk, ku ktorému sa pristupuje, akoby to bola samostatná tabuľka.

Keď spustíte dopyt proti zobrazeniu, sekundárny dopyt, ktorý zdrojuje zobrazenie, sa vykoná v reálnom čase, potom sa tieto výsledky spätne vrátia do pôvodného hlavného dotazu. Ak sú vaše zobrazenia mimoriadne zložité alebo ak váš hlavný dopyt vyžaduje veľké množstvo hašovacích spojení medzi niekoľkými tabuľkami a zobrazeniami, váš hlavný dopyt sa vykoná rýchlosťou korytnačky.

Zhmotnené zobrazenie urýchľuje vykonávanie dotazu, pretože funguje ako predkompilovaný dotaz zapísaný na disk, a preto sa vykonáva rovnako rýchlo ako tabuľka. Zhmotnené pohľady sú však len také dobré ako postupy udalosti, ktoré ich osviežujú. Z dlhodobého hľadiska pri dobrej údržbe zhmotnené zobrazenia veci urýchlia s malým kompromisom v čase obnovenia oneskorenia, bez potrebujete kopu tieňových tabuliek, ktoré by mohli byť neaktívne a buď by zjedli miesto na disku, alebo poskytli cudzie dotazy nevhodne.