Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fondovi-lekcii.doc
Скачиваний:
20
Добавлен:
10.11.2018
Размер:
4.09 Mб
Скачать

3. Організація користувачі у групи за допомогою ролей.

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

  1. Необхідно створити роль.

  2. Видати цій ролі достатні права.

  3. Призначити конкретним користувачам цю роль.

  4. При під’єднанні до бази даних вказати, окрім імені користувача, ту роль, яку буде мати під час з’єднання даний користувач.

Наведемо приклад. Для початку створимо роль READER:

CREATE ROLE READER;

Видамо цій ролі права на читання таблиці:

GRANT Select ON Tab TO READER;

Присвоїмо цю роль користувачу TESTUSER:

GRANT READER TO testuser;

4. Права. Роздача прав.

Права – це дозвіл будь-якому користувачу, збережуваній процедурі або тригеру здійснювати деяку операцію над певним об’єктом бази даних. Існує декілька видів об’єктів, на які можна встановлювати права для користувачів та ролей. Це таблиці і їх поля, подання і збережувані процедури. Існують такі права, що видаються користувачам InterBase (Права також можуть видаватися для процедур):

  1. Для таблиць та їх полів – права на виконання операцій SELECT, DELETE, INSERT, UPDATE і REFERENCES (це право дає користувачу можливість створювати обмеження зовнішнього ключа FOREIGN KEY на дану таблицю).

  2. Для зображень (VIEW) та їх полів – права на виконання операцій SELECT, DELETE, INSERT, UPDATE.

  3. Права на виконання збережуваних процедур – EXECUTE. Користувач, що хоче виконати певну процедуру, повинен мати на це право.

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

Права на об’єкти бази даних роздаються за допомогою команди GRANT.

Для того, щоб виділити користувачу TESTUSER права на вибірку з таблиці Tab, використовується команда:

GRANT Select ON Tab TO testuser;

Для того, щоб видати право на читання і запис даних, але не на їх зміну, використовується команда:

GRANT Select, Insert ON Tab TO testuser;

Для того, щоб видати відразу всі права, використовують ключове слово ALL:

GRANT ALL ON Tab TO testuser;

Для того, щоб виділити права відразу декільком користувачам, вони розділяються комами.

Якщо ж потрібно видати права відразу всім користувачам InterBase, то можна скористатися ключовим словом PUBLIC:

GRANT Select, Update ON Tab TO PUBLIC;

Окрім видачі прав на всю таблицю інколи виникає потреба обмежити права користувача декількома певними полями в таблиці. Наприклад, користувач BOSS має право змінювати поле BIGMONEY, а решта користувачів можуть його лише переглядати:

GRANT Select ON Tab(BIGMONEY) TO PUBLIC;

GRANT ALL ON Tab(BIGMONEY) TO BOSS;

Аналогічний синтаксис команд використовується і для збережуваних процедур:

GRANT EXECUTE ON PROCEDURE SP_Add TO testuser;

5. Анулювання прав.

Для цього існує команда REVOKE. Вона являє собою копію GRANT, лише із зворотною дією. Приклад:

REVOKE Select ON Tab FROM testuser;

При цьому неможливо якось обмежити або розширити права системного адміністратора SYSDBA.

За замовчуванням права на довільний об’єкт в InterBase має лише його власник, а також системний адміністратор SYSDBA. Відповідно, роздавати права за замов-чуванням може лише власник об’єкта. Інший користувач, що не є власником об’єкта, не може видати іншому користувачу права на цей об’єкт, якщо тільки власник не передав іншому користувачу відповідні права із спеціальною опцієї WITH GRANT OPTION. Вказання цієї опції в кінці звичайного речення GRANT означає, що користувач не лише одержує ці права, але може передавати їх другому користувачу. Наприклад:

GRANT Select ON Tab TO testuser WITH GRANT OPTION;

Тепер користувач TESTUSER може не лише вибирати записи з таблиці Tab, але і передавати право Select (і лише його) іншим користувачам.

Контрольні питання:

  1. Вкажіть серію команд створення нового користувача бази даних InterBase?

  2. Що таке роль? Як її створити?

  3. Опишіть команду роздачі прав.

  4. Яка команда надає відразу всі права?

  5. Яка команда видає права відразу всім користувачам?

  6. Вкажіть команду анулювання прав.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]