- •Безпека даних
- •Реєстрація користувачів
- •Керування правами доступу
- •Кому надаються права доступу
- •Умови надання прав доступу
- •Об'єкти, на які поширюються права доступу
- •Операції, щодо яких специфікуються права доступу
- •Можливість передавання прав доступу іншим особам
- •Специфікація повноважень в MySql
- •Передавання повноважень користувачам або ролям
- •Grant insert on db3.Departments to 'jeffrey'@'localhost' with max_queries_per_hour 90; Обов'язкові методи захисту
- •Ведення журналів доступу
- •Обхід системи захисту
- •Підсумок
Реєстрація користувачів
Реєстрація користувачів у системі необхідна для коректного керування доступом. Керування доступом може бути довірче йадміністративне
Довірче керування доступом до даних - це такий тип керування, коли система захисту дає змогу звичайним користувачам не лише отримувати доступ до певних даних, але й передавати повноваження на доступ до них іншим користувачам без адміністративного втручання.
Адміністративне керування доступом до даних — це таке керування, за якого система захисту дає змогу передавати повноваження на доступ до даних лише спеціально авторизованому користувачу (адміністратору).
Будь-який користувач для отримання доступу до бази даних має бути зареєстрований у системі під певним ім'ям і паролем. Реєстрація необхідна для того, щоб знати, з ким має справу система у кожний момент часу. Зазначимо, що під користувачем розуміється не лише фізична особа, але й будь-яке джерело, що в змозі звернутися до бази даних (прикладна програма, операційна система, інтернет-додаток тощо).
Спрощений вигляд конструкції, що застосовується для означення користувача, є таким:
CREATE USER <користувач> IDENTIFIED <пароль>.
Тут <користувач> — ім'я користувача, а <пароль> — пароль.
Приклад реалізації створення нового користувача в СУБД MySQL
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'strong_pwd'
Зверніть увагу, що тут додано ще один атрибут до імені користувача - ’localhost’. Це комп’ютер, з якого користувач має право входити. (Детальніше...)
Спочатку користувач не має жодних повноважень. Щоб користувач міг виконувати ті чи інші операції над базою даних, йому необхідно передати відповідні повноваження.
Керування правами доступу
Визначити права доступу користувачів — це означає зафіксувати інформацію стосовно:
осіб, яким надаються права доступу;
умов надання прав доступу;
об'єктів, на які поширюються права доступу;
операцій, щодо яких специфікуються права доступу;
можливості передавання прав доступу іншим особам.
Схематично аспекти керування правами доступу зображені на рис.
Далі розберемо кожен з цих пунктів детальніше.
Кому надаються права доступу
Права доступу надаються всім, хто звертається до бази даних. Це можуть бути користувачі, прикладні програми, операційні системи тощо. Кожен, хто звертається до бази даних, має насамперед вказати своє ім'я і пароль. Для СУБД не важливо, хто саме звертається до бази даних, головне, щоб усі, хто хоче отримати можливість працювати з нею, були заздалегідь зареєстровані в системі.
У деяких випадках може знадобитися виділити користувачів системи, які мають однакові повноваження. Наприклад, усі співробітники відділу кадрів можуть мати одні й ті ж права, а співробітники планового відділу — інші, причому також однакові. Для реалізації такого розподілу прав вводиться поняття ролі.
Роль — це сукупність повноважень, які можуть передаватися користувачам або іншим ролям. Можна присвоїти повноваження ролям, а згодом приписувати ролі користувачам. Коли користувачу присвоєна роль, він має ті повноваження, які приписані ролі.
Роль має всі повноваження, які присвоєні їй явно, й усі повноваження, які передані їй іншими ролями.
Спрощений синтаксис означення ролі є таким:
CREATE ROLE <роль> IDENTIFIED <пароль>.
Тут <роль> — ім'я ролі.
Спочатку роль є порожньою, тобто не має жодного повноваження.
Зауважимо що деякі СУБД (наприклад, MySQL) можуть не мати такого поняття як роль.
