Лабораторна робота № 6

Тема роботи: Безпека в InterBase.

Мета роботи: Навчити створювати користувачів та ролі у середовищі сервера InterBase.

 

ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

 

Використання комп’ютерів різко загострило проблеми збереження та конфіден-ціальності даних. Інформація, яка зберігається в базі даних часто має дуже велику вартість. Тому забезпечення безпеки збережуваних даних є невід’ємною час-тиною сучасних СУБД. InterBase надає різні засоби для керування безпекою в своїх базах даних. Як і більшості СУБД, в InterBase захист даних базується на тому, що існує концепція користувачів, які одержують те або інше право для роботи з кожним об’єктом всередині бази даних. Реальні користувачі одержують в своє володіння ім’я користувача InterBase і його пароль і використовують його для роботою з базою даних. Під користувачем InterBase будемо розуміти реєстраційний запис, який складається з імені користувача та його пароля. Адміністратор СУБД InterBase заводить необхідну кількість користувачів і призначає потрібні їм для роботи права, дозволяючи доступ лише для тієї частини інформації, яка потрібна для виконання роботи користувача. Реалізація обмежень, які накладаються на об’єкти бази даних, здійснена в InterBase на рівні сервера бази даних, а не самої бази даних. Наслідком цього є те, що фізично скопіювавши базу даних на інший сервер, ми можемо скористатись паролем адміністратора цього сервера і одержати повний доступ до інформації в базі даних. Тобто захист файла бази даних необхідно забезпечувати на іншому рівні, ніж СУБД.

Користувачі.

Користувач InterBase – це реєстраційний запис, доступний в усіх базах даних, які обслуговуються даним сервером. Серед усіх користувачів найголовніший є SYSDBA – системний адміністратор сервера InterBase. Це ім’я задане і не може змінюватися. За замовчуванням цей користувач має всі права над довільними об’єктами бази даних. За замовчуванням пароль цей пароль – “masterkey”. Для того, щоб створити нового користувача слід використовувати системну консоль IBConsole. Після підключення сервера за допомогою запису адміністратора, виберіть команду Server – UserSecurity. В діалоговому вікні User Information натисніть кнопку New і задайте параметри User Name, Password, Confirm Password (підтвердження пароля). Ці параметри варто записати, щоб не забути. Список користувачів можна переглянути в папці Users, яка міститься в дереві сервера в IBConsole. Звичайно в системі InterBase заводять скільки користувачів, скільки звертаються до бази даних.

Ролі.

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

Ролі – це об’єкти рівня бази даних. Вони видимі лише всередині тієї бази даних, в якій визначені. Для того, щоб створити роль з іменем READER, необхідно виконати наступний DDL-запит (його можна виконати в ISQL): CREATE ROLE READER;

 

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

Права.

Права – це дозвіл будь-якому користувачу, збережуваній процедурі або тригеру здійснювати деяку операцію над певним об’єктом бази даних. Існує декілька видів об’єктів, на які можна встановлювати права для користувачів та ролей. Це таблиці і їх поля, подання і збережувані процедури. Існують такі права, що видаються користувачам 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;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: