Передавання повноважень користувачам або ролям

Права доступу надаються всім, хто звертається до бази даних. Це можуть бути користувачі, прикладні програми, операційні системи тощо. Кожен, хто звертається до бази даних, має насамперед вказати своє ім'я і пароль. Для СКБД не важливо, хто саме звертається до бази даних, головне, щоб усі, хто хоче отримати можливість працювати з нею, були заздалегідь зареєстровані в системі.

 

У деяких випадках може знадобитися виділити користувачів системи, які мають однакові повноваження. Наприклад, усі співробітники відділу кадрів можуть мати одні й ті ж права, а співробітники планового відділу — інші, причому також однакові. Для реалізації такого розподілу прав вводиться поняття ролі.

 

Роль — це сукупність повноважень, які можуть передаватися користувачам або іншим ролям. Можна присвоїти повноваження ролям, а згодом приписувати ролі користувачам. Коли користувачу присвоєна роль, він має ті повноваження, які приписані ролі.

 

Роль має всі повноваження, які присвоєні їй явно, й усі повноваження, які передані їй іншими ролями.

 

Спрощений синтаксис означення ролі є таким:

CREATE ROLE <роль> IDENTIFIED <пароль>.

Тут <роль> — ім'я ролі.

 

Спочатку роль є порожньою, тобто не має жодного повноваження.

 

ПривілеїКерування правами доступу

 

Визначити права доступу користувачів — це означає зафіксувати інформацію стосовно:

осіб, яким надаються права доступу;

умов надання прав доступу;

об'єктів, на які поширюються права доступу;

операцій, щодо яких специфікуються права доступу;

можливості передавання прав доступу іншим особам.

 

Схематично аспекти керування правами доступу зображені на рис. 16.1.

16.2. Управління доступом. Засоби підтримки безпеки в SQL.

Команда GRANT дає змогу передати повноваження користувачам або ролям. Спрощений синтаксис команди є таким:

GRANT { <операція> | ALL} [(<список стовпців>)] ON <список об'єктів> ТО {<користувач> | <роль> | PUBLIC} WITH GRANT OPTION

Специфікатор <операція> вказує, щодо яких операцій описується повноваження. Такими операціями можуть бути: SELECT, INSERT, UPDATE, DELETE та інші. Фраза ALL вказує, що повноваження передаються щодо всіх операцій. У списку об'єктів зазначаються всі об'єкти бази даних, щодо яких специфікуються повноваження. Цей список містить посилання на таблиці й віртуальні таблиці. За допомогою параметра <список стовпців> можна додатково вказати стовпці таблиць. Повноваження може бути передане користувачу, ролі або всім, хто вказується у фразі ТО. Якщо повноваження передається користувачу, він одержує право виконувати операції згідно з цим повноваженням. Коли повноваження передається ролі, вона ним поповнюється. Фраза WITH GRANT OPTION означає, що одержувач повноваження отримує також право передавати це повноваження іншому користувачу або ролі.

 

Розглянемо кілька прикладів надання й передавання прав доступу:

1. Надати користувачу на ім'я Коваленко права на виконання будь-яких операцій над таблицею JOBS і дозвіл на передавання цих прав іншим користувачам:

GRANT ALL ON JOBS TO Коваленко WITH GRANT OPTION

2. Надати всім користувачам право переглядати дані з таблиці Employees:

GRANT SELECT ON Employees ТО PUBLIC

3. Надати користувачу на ім'я Коломієць право змінювати стовпець Department_name у таблиці Departments:

GRANT UPDATE (Department_name) ON Departments ТО Коломієць

 

 

Лекція 17. Пост реляційні БД.

Постреляційні, об’єктно орієнтовані та XML БД. Технології інтелектуальної обробки даних. Методи та засоби багатовимірного статистичного аналізу даних

17.1. Недоліки реляційних систем.

 

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

-Семантичне перевантаження –реляційна модель має тільки одну конструкцію для відображення даних та з’язків між ними – відношення. Однаково зображувані звязки можуть мати різний зміст (рольові імена). Через відсутність можливості їх схемного відображення говорять, що ця модель є семантично перевантаженою;

-Слабка підтримка обмежень цілістності та корпоративних обмежень;

-Однорідна структура даних - реляційна модель передбачає як горизонтальну, так і вертикальну однорідність даних. Горизонтальна однорідність даних означає, що кожен кортеж відношення повинен складатись з однакових атрибуті, а вертикальна - що значення в деякому стовпчику повино належати до одного і тогож домену. А на їх перетині повино знаходитись атомарне значення. Така фіксована структура є жорсткою і недостатньою для представленя багатьох об’єктів "реального світу", що призводить до неприродніх з’єднань.

-Обмежений набір операцій - реляційна модель підтримує фіксорований набір операцій, визначені в специфікаціях SQL , які не допускають визначення нових операцій;

-Сладнощі при обрабці рекурсивних запитів;

-Проблема неузгодженості типів даних -в SQL и мовах 3-го поколінявикористовуються різні моделі представленя даних;

-Існують проблеми реляційних СУБД, пов’язані з паралельним виконаням, змінами схеми та недостатньо розвинутими засобами доступу до даних.

 

17.2. Основні концепції об’єктно-орієнтованого підходу.

 

В ньго закладені явища абстракції, інкапсуляції та невидимості інформації.

Абстракція– це процес виявленя найбільш важливих аспектів сутності та ігнорування всіх інших, малозначимих властивостей.

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

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

 

Ключовим в визначенні об’єкта є унікальність його ідентифікації. В об’єктно-орієнтованійй системі кожному об’єкту в момент його створеня присвоюється ідентифікатор, який має наступні властивості:

- генерується системою;

- унікально визначає об’єкт;

- є незміним на протязі часу існування;

- не може бути повторно використаний для будь якого іншого об’єкта, навіть після його видаленя;

- не залежить від значень його атрибутів;

- невидимий для користувача (в ідеальному випадку).

Об’єкт інкапсулює дані та функції - їх називають методами і, являє собою собою автономну конструкцію – клас (компоненти). Метод має ім’я і реалізує правила поведінки об’єкта.

 

17.3. Альтернативні стратегії розробки об’єктно-орієнтованих СУБД.

 

Існує декілька підходів до розробки ОО СУБД:

- Введення засобів работи з БД в існуючу об’єктно-орієнтовану мову програмуваня (C++ наприклад).

- Надання розширень об’єктно-орієнтованих бібліотек СУБД. Замість розширення функцій мови програмування використовуються додаткові бібліотеки класів, що підтримують перманентність (постійність), агрегатування, об’єктні типи даних, транзакції, паралельність, захист і т.д. (Використовується в програмних продуктах Ontos, Versant та СУБД ObjectStore) .

- Вбудова конструкцій об’єктно-орієнтированої мови базы даних в звичайну мову БД

SQL. (продукт О2, що надає розширеня для мови програмуваня С для вбудови в SQL).

- Доповнення існуючої мови SQL об’єктно-орієнтованими функціями. (деякі розробники роблять спробу розширити його з метою підтримки об’єктно-орієнтованих конструкцій).

-Розробка нової мови базы даних та моделі даних (використовується в SIM (Semantic Information Manager).

 

17.4. Переваги та недоліки об’єктно-орієнтованих СУБД.

 

Переваги:

-Покращені можливості моделювання.

-Розширюваність –допускається створення нових типів даних на основі існуючих;

-відсутність проблеми невідповідності типів

-Більш багата (более выразительная) мова запитів

-Підтримка еволюції схеми

-Підтримка довгоживучих транзакцій

-Підвищена продуктивність.

 

Недоліки:

-Відсутність універсальної моделі даних;

-Недостатність досвіду експлуатації

-Відсутність стандартів;

-Конкуренція із сторони СУБД других типів, які ще не вичерпали можливостей свого розвитку;

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

-Вплив блокуванняна рівні об’єкта напродуктивність

-Складність

-Відсутність підтримки користувацьких представлень

-Недостатність засобів забезпечення захисту.