Adat-hozzáférés ellenőrzése SQL-nézetekkel

Adatbázis A nézetek csökkentik a végfelhasználói élmény összetettségét és korlátozzák a felhasználók hozzáférését az adatbázis-táblákban található adatokhoz. A nézet lényegében a adatbázis lekérdezés a virtuális adatbázis-tábla tartalmának dinamikus feltöltésére.

Miért érdemes használni a nézeteket?

Két fő oka annak, hogy a felhasználók nézeteken keresztül hozzáférjenek az adatokhoz, ahelyett, hogy közvetlen hozzáférést biztosítanának az adatbázis-táblákhoz:

  • A nézetek egyszerű, részletgazdag biztonságot nyújtanak. Nézet használatával korlátozhatja azokat az adatokat, amelyeket a felhasználó láthat a táblázatban. Például, ha rendelkezik alkalmazotti táblával, és néhány felhasználó számára hozzáférést kíván biztosítani a teljes munkaidőben foglalkoztatott alkalmazottak nyilvántartásához, létrehozhat egy nézetet, amely csak ezeket a rekordokat tartalmazza. Ez sokkal könnyebb, mint az alternatíva (árnyéktábla létrehozása és fenntartása), és biztosítja az adatok integritását.
  • A nézetek egyszerűsítik a felhasználói élményt
    instagram viewer
    . A nézetek elrejtik az adatbázis-táblák összetett részleteit azoktól a végfelhasználóktól, akiknek nem kell látniuk őket. Ha egy felhasználó megsemmisíti a nézet tartalmát, nem fogja látni azokat a táblázat oszlopokat, amelyeket a nézet nem választott ki, és lehet, hogy nem is érti őket. Ez megvédi őket a rosszul megnevezett oszlopok, egyedi azonosítók és asztali kulcsok.

Nézet létrehozása

A nézet létrehozása meglehetősen egyszerű: Egyszerűen hozzon létre egy lekérdezést, amely tartalmazza az érvényesíteni kívánt korlátozásokat, és helyezze a CREATE VIEW parancsba. Íme az általános szintaxis:

CREATE VIEW nézetnév AS

Például a teljes munkaidős alkalmazott nézetének létrehozásához adja ki a következő parancsot:

CREATE VIEW teljes munkaidőben
Válassza ki az első_nevet, a vezetéknevet, a munkavállaló azonosítóját
Az alkalmazottaktól
WHERE status = 'FT';

Nézet módosítása

A nézet tartalmának megváltoztatása pontosan ugyanazt a szintaxist használja, mint a nézet létrehozása, de a CREATE VIEW parancs helyett használja az ALTER VIEW parancsot. Például egy korlátozás hozzáadásához a teljes munkaidős nézethez, amely hozzáadja az alkalmazott telefonszámát az eredményekhez, adja ki a következő parancsot:

ALTER VIEW teljes munkaidőben
Válassza ki a keresztnevet, vezetéknevet, alkalmazott_idet, telefonszámot
Az alkalmazottaktól
WHERE status = 'FT';

Nézet törlése

Egyszerű nézetet eltávolítani az adatbázisból a DROP VIEW paranccsal. Például a teljes munkaidőben dolgozó nézet törléséhez használja a következő parancsot:

DROP VIEW teljes munkaidőben; 

Nézetek vs. Megvalósult nézetek

A nézet egy virtuális tábla. A materializált nézet ugyanaz a nézet lemezre írva és úgy érhető el, mintha önálló tábla lenne.

Amikor lekérdezést futtat egy nézet ellen, a nézetet forró másodlagos lekérdezés valós időben hajt végre, majd ezek az eredmények visszajutnak az eredeti fő lekérdezésbe. Ha a nézetei rendkívül összetettek, vagy a fő lekérdezéshez nagyszámú kivonat szükséges, több táblázat és nézet között, a fő lekérdezés egy teknős sebességével fog végrehajtani.

A megvalósult nézet felgyorsítja a lekérdezés végrehajtását, mert előre összeállított, lemezre írt lekérdezésként működik, ezért ugyanolyan gyorsan hajt végre, mint egy táblázat. A megvalósult nézetek azonban csak olyan jók, mint az őket frissítő események. Hosszú távon, jó karbantartással, a megvalósult nézetek felgyorsítják a dolgokat egy kis kompromisszummal a késleltetett frissítési idő alatt, anélkül, hogy szükség van egy csomó árnyéktáblára, amelyek szunnyadhatnak, és megeszik a lemezterületet, vagy más lekérdezéseit eredményezik helytelenül.

instagram story viewer