- •Віртуальні таблиці (візії) Визначення візії
- •Перейменування атрибутів візії
- •Модифікація змісту візій
- •Тема 14. Обмеження та тригери в sql Активні елементи
- •Ключі відношень Види ключів і обмеження
- •Оголошення первинного ключа
- •Ключі та індекси
- •Оголошення зовнішнього ключа
- •Стратегії забезпечення посилальної цілісності
- •Обмеження рівня атрибутів та кортежів
- •Обмеження not null
- •Обмеження check рівня атрибуту
- •Обмеження check рівня кортежу
- •Модифікація обмежень
- •Тригери в sql Тригери як правила „подія-умова-дія”
- •Тригери instead of
- •Тригери у Transact sql
- •Безпека
- •Категорії збережених процедур Системні збережені процедури
- •Локальні збережені процедури
- •Тимчасові збережені процедури
- •Розширені збережені процедури
- •Основи програмування у Transact-sql
- •Блоки операторів
- •Умовне виконання
- •Використання збережених процедур Виклик збереженої процедури
- •Створення збереженої процедури
- •Безпека даних
- •1.2. Реєстрація користувачів
- •Керування правами доступу
- •Кому надаються права доступу
- •Умови надання прав доступу
- •1.3.3. Об’єкти, на які поширюються права доступу
- •Операції, щодо яких специфікуються права доступу
- •Можливість передавання прав доступу іншим особам
- •Специфікація повноважень
- •Обов’язкові методи захисту
- •Ведення журналів доступу
- •Обхід системи захисту
- •Використання представлень для фільтрації повноважень
- •Хто може створювати представлення?
Керування правами доступу
Визначити права доступу користувачів — це означає зафіксувати інформацію стосовно:
осіб, яким надаються права доступу;
умов надання прав доступу;
об’єктів, на які поширюються права доступу;
операцій, щодо яких специфікуються права доступу;
можливості передавання прав доступу іншим особам.
Розглянемо коротко всі ці аспекти.
Кому надаються права доступу
Права доступу надаються всім, хто звертається до бази даних. Це можуть користувачі, прикладні програми, операційні системи тощо. Кожен, хто звертається до бази даних, має насамперед вказати своє ім’я і пароль. Для СКБД неважливо хто саме звертається до бази даних, головне, щоб усі, хто хоче отримати можливість працювати з нею, були заздалегідь зареєстровані в системі.
У деяких випадках може знадобитися виділити користувачів системи, які мають однакові повноваження. Наприклад, усі співробітники відділу кадрів можуть мати одні й ті ж права, а співробітники планового відділу - інші, причому однакові. Для реалізації такого розподілу прав вводиться поняття ролі.
Роль — це сукупність повноважень, які можуть передаватися користувачам або іншим ролям. Можна присвоїти повноваження ролям, а згодом приписувати ролі користувачам або іншим ролям. Можна присвоїти повноваження ролям, а згодом приписувати ролі користувачам. Коли користувачу присвоєна роль, він має ті повноваження, які приписані ролі.
Спрощений синтаксис означення ролі є таким:
CREATE ROLE <роль> IDENTIFIED <пароль>
Тут <роль> - ім’я ролі.
Спочатку роль є порожнею, тобто не має жодного повноваженя.
Умови надання прав доступу
Іноді доцільно специфікувати додаткові умови, за дотримання яких користувачам надаються певні права доступу. Йдеться про умови, які не визначаються іншими складовими прав доступу (кому надається доступ, до яких даних, які операції дозволяються).
Приклади додаткових умов:
часові характеристики (наприклад, «права доступу діють лише між 16 і 17 годинами першого понеділка кожного місяця»);
.
локалізація комп’ютерів у локальній мережі (наприклад, «права доступу діють лише для комп’ютерів, установлених у плановому відділі»).
У більшості СУБД немає засобів явного опису додаткових умов, що обмежують права доступу. За необхідності такі умови можуть бути специфіковані у прикладних системах.
1.3.3. Об’єкти, на які поширюються права доступу
Зазвичай у контексті прав доступу розрізняють об’єкти двох класів: системні і об’єкти бази даних. До системних об’єктів належать: база даних, кластери, тригери, транзакції тощо. До об’єктів бази даних належать таблиці, віртуальні таблиці та процедури. Крім того, в таблицях і віртуальних таблицях можуть додатково вказуватися стовпці, щодо яких специфікуються права доступу.
У деяких випадках виникає необхідність специфікувати рядки певної таблиці, що стосуються особи, для якої визначаються права доступу. Наприклад:
будь-який користувач може змінювати у відношенні СЛУЖБОВЕЦЬ значення полів лише того рядка, який стосується його самого (тобто він може змінювати лише свої особисті дані), за винятком величини його зарплати;
у відношенні СЛУЖБОВЕЦЬ змінювати зарплату може лише той користувач, який є начальником відділу даного службовця.
У розглянутій ситуації виникає необхідність посилатися на поточного користувача в умові вибирання записів із віртуальної таблиці. Для цього в деяких СУБД надається можливість використовувати спеціальну константу, яка ідентифікує поточного користувача (тобто користувача, який ініціює виконання відповідного запиту на вибирання або оновлення даних).
