Skip to content

Керування доступом до даних за допомогою подань у SQL

18 de Липень de 2021

Представлення баз даних зменшують складність взаємодії з кінцевими користувачами та обмежують доступ користувачів до даних, що містяться в таблицях баз даних. По суті, подання використовує результати запиту до бази даних для динамічного заповнення вмісту таблиці віртуальної бази даних.

Навіщо використовувати подання?

Є дві основні причини надати користувачам доступ до даних через подання, а не надавати їм прямий доступ до таблиць баз даних:

  • Види забезпечують просту, деталізовану безпеку. Використовуйте подання, щоб обмежити дані, які користувач може бачити в таблиці. Наприклад, якщо у вас є таблиця співробітників і ви хочете надати деяким користувачам доступ до записів штатних співробітників, ви можете створити представлення даних, яке містить лише ці записи. Це набагато простіше, ніж альтернатива (створення та підтримка тіньової таблиці) і забезпечує цілісність даних.
  • Перегляди спрощують взаємодію з користувачем. Представлення приховують складні деталі таблиць вашої бази даних від кінцевих користувачів, яким їх не потрібно бачити. Якщо користувач скидає вміст подання, він не бачитиме стовпців таблиці, які не вибрані поданням, і він може не зрозуміти. Це захищає їх від плутанини, спричиненої неправильно названими стовпцями, унікальними ідентифікаторами та ключами таблиці.

Створення подання

Створення подання є досить простим: просто створіть запит, який містить обмеження, які ви хочете застосувати, та розмістіть його всередині команди CREATE VIEW. Ось загальний синтаксис: CREATE VIEW viewname AS
<запит>

type = “code”> Наприклад, щоб створити огляд штатного співробітника, виконайте таку команду: CREATE VIEW full time AS
ВИБЕРІть ім’я, прізвище, ідентифікатор працівника
ВІД співробітників
ДЕ статус = “FT”;

type = “code”>

Модифікація подання

Зміна вмісту подання використовує той самий синтаксис, що і створення представлення, але використовуйте команду ALTER VIEW замість команди CREATE VIEW. Наприклад, щоб додати обмеження до режиму постійної роботи, який додає номер телефону працівника до результатів, виконайте таку команду: ALTER VIEW fulltime AS
ВИБЕРІТЬ ім’я, прізвище, ідентифікатор працівника, телефон
ВІД співробітників
ДЕ статус = “FT”;

type = “code”>

Видалення подання

Видалити подання з бази даних просто за допомогою команди DROP VIEW. Наприклад, щоб видалити подання штатного співробітника, використовуйте таку команду: DROP VIEW fulltime;

type = “code”>

Погляди проти матеріалізованих поглядів

Представлення – це віртуальна таблиця. A матеріалізований погляд це той самий вигляд, записаний на диск і доступний до нього, як ніби це сама по собі таблиця. Коли ви запускаєте запит до подання, вторинний запит, що подає представлення, виконується в режимі реального часу, тоді ці результати повертаються назад до вихідного основного запиту. Якщо ваші подання надзвичайно складні або ваш основний запит вимагає великої кількості хеш-об’єднань між кількома таблицями та поданнями, ваш основний запит буде виконуватися зі швидкістю черепахи. Матеріалізований перегляд прискорює виконання запиту, оскільки він функціонує як попередньо скомпільований запит, записаний на диск, і тому виконується так само швидко, як і таблиця. Однак матеріалізовані погляди настільки ж добрі, як і процедури подій, які їх освіжають. Зрештою, при гарному обслуговуванні, матеріалізовані подання пришвидшують ситуацію з невеликим компромісом за час затримки оновлення, без необхідності купу тіньових таблиць, які можуть стати неактивними, або з’їсти дисковий простір, або неадекватно отримати чужі запити.

Формат mla apa chicago Ваше посилання

Чапл, Майк. “Контроль доступу до даних за допомогою подань у SQL.” ThoughtCo, травень. 21, 2021, thinkco.com/controlling-access-with-views-1019783.
Чапл, Майк. (2021, 21 травня). Керування доступом до даних за допомогою подань у SQL. Отримано з https://www.thoughtco.com/controlling-access-with-views-1019783
Чапл, Майк. “Контроль доступу до даних за допомогою подань у SQL.” ДумкаCo. https://www.thoughtco.com/controlling-access-with-views-1019783 (доступ 18 липня 2021).