Контрол на достъпа до данни с изгледи в SQL

click fraud protection

База данни изгледите намаляват сложността на изживяването на крайния потребител и ограничават достъпа на потребителите до данни, съдържащи се в таблиците на базата данни. По същество изгледът използва резултатите от a заявка към база данни за динамично попълване на съдържанието на таблица на виртуална база данни.

Защо да използвам изгледи?

Има две основни причини да се осигури достъп на потребителите до данни чрез изгледи, вместо да им се предоставя директен достъп до таблици в базата данни:

  • Изгледите осигуряват проста, гранулирана сигурност. Използвайте изглед, за да ограничите данните, които потребителят има право да вижда в таблица. Например, ако имате таблица със служители и искате да предоставите на някои потребители достъп до записите на служители на пълен работен ден, можете да създадете изглед, който съдържа само тези записи. Това е много по-лесно от алтернативата (създаване и поддържане на таблица в сянка) и гарантира целостта на данните.
  • Изгледите опростяват потребителското изживяване
    instagram viewer
    . Изгледите скриват сложни подробности за таблиците на вашата база данни от крайни потребители, които не се нуждаят от тях. Ако потребителят изхвърли съдържанието на изглед, той няма да види колоните на таблицата, които не са избрани от изгледа и може да не разбере. Това ги предпазва от объркването, причинено от лошо именувани колони, уникални идентификатори и ключове на масата.

Създаване на изглед

Създаването на изглед е съвсем просто: Просто създайте заявка, която съдържа ограниченията, които искате да наложите, и я поставете в командата CREATE VIEW. Ето общия синтаксис:

СЪЗДАЙТЕ ИЗГЛЕД на изглед AS

Например, за да създадете изглед на служител на пълен работен ден, издайте следната команда:

СЪЗДАЙТЕ ВИЖ на пълен работен ден
ИЗБЕРЕТЕ първо име, фамилия, идентификатор на служител
ОТ служители
КЪДЕ статус = 'FT';

Промяна на изглед

Промяната на съдържанието на изгледа използва точно същия синтаксис като създаването на изглед, но използвайте командата ALTER VIEW вместо командата CREATE VIEW. Например, за да добавите ограничение към изгледа на пълен работен ден, който добавя телефонния номер на служителя към резултатите, издайте следната команда:

ALTER VIEW на пълно работно време
ИЗБЕРЕТЕ първо име, фамилия, идентификатор на служител, телефон
ОТ служители
КЪДЕ статус = 'FT';

Изтриване на изглед

Лесно е да премахнете изглед от база данни с помощта на командата DROP VIEW. Например, за да изтриете изгледа на служител на пълен работен ден, използвайте следната команда:

DROP VIEW на пълно работно време; 

Изгледи срещу Материализирани възгледи

Изгледът е виртуална таблица. A материализиран поглед е същият изглед, записан на диск и достъпен, сякаш е сам по себе си таблица.

Когато стартирате заявка срещу изглед, вторичната заявка, която източник на изгледа, изпълнява в реално време, след което тези резултати се връщат обратно в първоначалната основна заявка. Ако вашите изгледи са изключително сложни или вашата основна заявка изисква голям брой хеш съединения между няколко таблици и изгледи, вашата основна заявка ще се изпълни със скоростта на костенурка.

Материализираният изглед ускорява изпълнението на заявката, защото функционира като предварително компилирана заявка, записана на диск и следователно се изпълнява толкова бързо, колкото таблица. Материализираните възгледи обаче са толкова добри, колкото процедурите за събития, които ги освежават. В дългосрочен план, с добра поддръжка, материализираните изгледи ускоряват нещата с малък компромис за забавяне на времето за опресняване, без нужда от куп таблици в сянка, които може да станат неподвижни и да изядат дисково пространство, или да получат чужди заявки неприлично.

instagram story viewer