- •Державна податкова адміністрація україни
- •Поняття інформаційної системи
- •Життєвий цикл інформаційної системи
- •Історія розвитку субд
- •Реляційна модель даних
- •Математичні відношення
- •Реляційні ключі
- •Реляційна цілісність
- •Реляційна алгебра
- •Операції з’єднання
- •Нормалізовані відношення
- •Коли субд можна вважати реляційною
- •Основні типи даних визначених стандартом iso
- •Integer
- •Формати представлення дат
- •Формат time
- •Коротка характеристика сучасних субд
- •Основи мови sql
- •Insert into ustanova(kod,nazva) values(10234,’Академія дпс України’)
- •Прості запити
- •Умова відбору (ключове слово where)
- •Зрівняння
- •Використання діапазонів (between / not between)
- •Умови відбору з перевіркою входження у множину (in / not in)
- •Умови відбору з допомогою шаблону (like / not like)
- •Використання значення null в умовах відбору (is null / not null)
- •Використання множини таблиць в одному запиті
- •Імена таблиць і стовпчиків
- •З’єднання таблиць (join)
- •Ліве з’єднання (left join)
- •Сортування результату (фраза order by)
- •Групування результатів (фраза group by). Агрегатні функції
- •Використання фрази group by
- •Використання фрази having
- •Підзапити
- •Ключові слова any I all
- •Ключові слова exists I not exists
- •Комбінування результуючих таблиць (операції union, intersect і except)
- •Поновлення бази даних
- •Вставка нових даних
- •Модифікація даних (оператор update)
- •Використання inner join, left join в операторі update
- •Видалення даних з бази(оператор delete)
- •Визначення даних
- •Створення баз даних
- •Створення таблиць (оператор create table)
- •Видалення таблиць (оператор drop table)
- •Створення індексу (оператор create index)
- •Видалення індексу (оператор drop index)
- •Модифікація структури таблиці (оператор alter table)
- •Використання транзакцій
- •Управління доступом даних
- •Надання привілеїв іншим користувачам (оператор grant)
- •Відміна наданих привілеїв (оператор revoke)
Управління доступом даних
Для організації захисту інформації в базі даних в мові SQL передбачені оператори GRANT i REVOKE. Механізм захисту побудований на використанні ідентифікаторів користувачів, які надають ним відповідні права і привілеї. Ідентифікатором користувачаназивається звичний ідентифікатор мови SQL (допустима послідовність символів) для ідентифікації певного користувача бази даних. Кожному користувачеві бази адміністратор бази даних (АБД) назначає певний ідентифікатор, який пов’язаний з певним паролем. Кожний SQL-оператор виконується від імені деякого користувача. Ідентифікатор користувача вказує на об’єкти бази даних з якими даний користувач може працювати а також які операції доступні для даного користувача.
Кожний створений в середовищі SQL об’єкт має свого господаря. Господар задається ідентифікатором користувача, визначеному у фразі AUTORIZATION тієї ж схеми, якій належить даний об’єкт.
Привілеї. Привілеями називають дії, які користувач має право застосовувати до таблиці бази даних або до представлення. В стандарті ISO визначені такі привілеї:
SELECT – право вибирати дані з таблиць;
INSERT – право вставляти в таблицю нові рядки;
UPDATE – право змінювати дані в таблиці;
DELETE – право видаляти рядки з таблиці;
REFFERENCES – право посилатись на стовпчики вказаної таблиці.
Привілеї INSERT і UPDATE можуть застосовуватись і для окремих стовпчиків таблиць. Це означатиме, що користувач матиме можливість вносити зміни лише у вказані стовпчики зазначених таблиць. Якщо користувач з допомогою оператора CREATE TABLE створює нову таблицю, він автоматично стає її господарем і має повний набір привілеїв по відношенню до цієї таблиці.
Надання привілеїв іншим користувачам (оператор grant)
Кожний користувач в середовищі SQL має спеціальний ідентифікатор (послідовність символів), який називають ідентифікатором користувача (authorization ID). В багатокористувацьких системах є процедура входу в систему, у відповідності з якою здійснюється доступ до бази даних. Ця процедура визначає ID, який пов’язаний з даним користувачем. Кожний користувач має свій ID, хоча для різних користувачів допускається використання однакових ID. Кожний користувач має свій набір привілеїв, тобто множину тих дій, які йому дозволено виконувати (вхід в систему це мінімальний привілей). Привілеї з часом можуть змінюватись: нові привілеї назначатись – старі відмінятись. Привілей дається конкретному користувачеві для окремої таблиці або представлення. Користувач, який створив дану таблицю, має всі права на неї. Він також може передати частину з них іншому користувачеві.
Наведемо стандартні привілеї, які може назначити користувач:
SELECT – користувач з цим привілеєм може виконувати запити для цієї таблиці;
INSERT - користувач з цим привілеєм може виконувати оператор INSERT для цієї таблиці;
UPDATE - користувач з цим привілеєм може виконувати оператор UPDATE для цієї таблиці. Привілей обмежується множиною стовпчиків цієї таблиці;
DELETE - користувач з цим привілеєм може виконувати оператор DELETE для цієї таблиці.
REFERENCES - користувач з цим привілеєм може визначити зовнішній ключ, який використовує один або декілька стовпчиків.
Механізм SQL дозволяє виконати призначення користувачам цих привілеїв з допомогою оператора GRANT. Оператор GRANT має такий формат:
GRANT {privileges_list | ALL PRIVILEGES}
ON object_name
TO {autorization_id_list | PUBLIC}
[WITH GRANT OPTION]
Параметр privileges_list задає список, що містить один або більше стандартних привілеїв розділених комами. Крім того, для зручності, введено ключове слово ALL PRIVILEGES, що означає надання всіх привілеїв.
Параметр object_name задає ім’я об’єкту бази даних (таблиці, представлення, домену, набору символів).
Фраза WITH GRANT OPTION є необов’язковою. З її допомогою задають всім вказаним у списку autorization_id_list користувачам передавати іншим користувачам всі надані їм привілеї. Якщо ця фраза опущена, одержувач привілеїв не зможе передавати свої права іншим користувачам.
Приклади. Надання всіх привілеїв щодо таблиці Osoba користувачеві Stud.
GRANT ALL PRIVILEGES
ON Osoba
TO Stud WITH GRANT OPTION
В результаті користувач з ідентифікатором Stud одержить право на модифікацію даних (вставлять, видалять, а також поновлювати рядки) в таблиці Osoba, а також вибирати дані з цієї таблиці. Оскільки в цьому операторі присутня фраза WITH GRANT OPTION, користувач Stud може передавати всі або частину своїх прав іншим користувачам.
Наступний приклад показує як надати користувачеві з ідентифікатором Admin привілеї SELECT і UPDATE для стовпчика PRIZ таблиці Osoba.
GRANT SELECT,UPDATE(PRIZ)
ON Osoba
TO Admin
Оскільки фраза WITH GRANT OPTION відсутня, користувач Admin не зможе передати свої права іншим користувачам.
Наступний приклад показує як надати декільком користувачам з ідентифікаторами Admin і Stud привілею SELECT для таблиці Osoba.
GRANT SELECT
ON Osoba
TO Admin, Stud
Приклад надання привілею SELECT всім користувачам:
GRANT SELECT
ON Osoba
TO PUBLIC
Використання ключового слова PUBLIC означає, що всі користувачі(які вже зареєстровані в базі, так і майбутні) одержать право використання таблиці Osoba в операторі SELECT.