Kontrolowanie dostępu do danych za pomocą widoków w SQL

click fraud protection

Baza danych widoki zmniejszają złożoność doświadczeń użytkownika końcowego i ograniczają dostęp użytkowników do danych zawartych w tabelach bazy danych. Zasadniczo widok wykorzystuje wyniki zapytanie do bazy danych do dynamicznego wypełniania zawartości tabeli wirtualnej bazy danych.

Dlaczego warto korzystać z widoków?

Istnieją dwa główne powody, dla których należy zapewnić użytkownikom dostęp do danych za pośrednictwem widoków, zamiast zapewniać im bezpośredni dostęp do tabel bazy danych:

  • Widoki zapewniają proste, szczegółowe zabezpieczenia. Użyj widoku, aby ograniczyć ilość danych, które użytkownik może zobaczyć w tabeli. Na przykład, jeśli masz tabelę pracowników i chcesz zapewnić niektórym użytkownikom dostęp do rekordów pracowników pełnoetatowych, możesz utworzyć widok zawierający tylko te rekordy. Jest to znacznie łatwiejsze niż alternatywa (tworzenie i utrzymywanie tabeli cieni) i zapewnia integralność danych.
  • Widoki upraszczają wrażenia użytkownika. Widoki ukrywają złożone szczegóły tabel bazy danych przed użytkownikami końcowymi, którzy nie muszą ich widzieć. Jeśli użytkownik zrzuci zawartość widoku, nie zobaczy kolumn tabeli, które nie są wybrane przez widok, i może ich nie zrozumieć. Chroni to ich przed zamieszaniem spowodowanym przez źle nazwane kolumny, unikalne identyfikatory i
    instagram viewer
    klawisze tabeli.

Tworzenie widoku

Tworzenie widoku jest dość proste: po prostu utwórz zapytanie zawierające ograniczenia, które chcesz wymusić i umieść je w poleceniu CREATE VIEW. Oto ogólna składnia:

CREATE VIEW nazwa widoku AS

Na przykład, aby utworzyć widok pełnoetatowego pracownika, wydaj następujące polecenie:

CREATE VIEW w pełnym wymiarze czasu AS
SELECT imię, nazwisko, identyfikator pracownika
OD pracowników
GDZIE status='FT';

Modyfikowanie widoku

Zmiana zawartości widoku używa dokładnie tej samej składni, co przy tworzeniu widoku, ale użyj polecenia ALTER VIEW zamiast polecenia CREATE VIEW. Na przykład, aby dodać ograniczenie do widoku pełnego etatu, które dodaje numer telefonu pracownika do wyników, wydaj następujące polecenie:

ALTER VIEW w pełnym wymiarze godzin AS
SELECT imię, nazwisko, identyfikator pracownika, telefon
OD pracowników
GDZIE status='FT';

Usuwanie widoku

Usunięcie widoku z bazy danych jest proste za pomocą polecenia DROP VIEW. Na przykład, aby usunąć widok pełnoetatowego pracownika, użyj następującego polecenia:

DROP VIEW w pełnym wymiarze godzin; 

Widoki a Zmaterializowane widoki

Widok to wirtualny stół. ZA zmaterializowany widok jest tym samym widokiem zapisanym na dysku i dostępnym tak, jakby był to sam w sobie tabelę.

Gdy uruchamiasz zapytanie względem widoku, zapytanie pomocnicze, które jest źródłem widoku, jest wykonywane w czasie rzeczywistym, a następnie wyniki są przesyłane z powrotem do oryginalnego zapytania głównego. Jeśli twoje widoki są wyjątkowo złożone lub twoje główne zapytanie wymaga dużej liczby sprzężeń mieszających między kilkoma tabelami i widokami, twoje główne zapytanie zostanie wykonane z szybkością żółwia.

Widok zmaterializowany przyspiesza wykonywanie zapytań, ponieważ działa jako wstępnie skompilowane zapytanie zapisywane na dysku i dlatego jest wykonywane tak szybko, jak tabela. Jednak zmaterializowane widoki są tak dobre, jak procedury zdarzeń, które je odświeżają. Na dłuższą metę, przy dobrej konserwacji, zmaterializowane widoki przyspieszają działanie z niewielkim kompromisem w zakresie czasu odświeżania opóźnień, bez Potrzebujesz kilku tabel cieni, które mogą stać się uśpione i albo pochłaniać miejsce na dysku, albo pozyskiwać zapytania innych osób niewłaściwie.

instagram story viewer