- Цілісність даних
- 8.2 Безпека даних
Ключові терміни:
безпека даних, вибірковий метод захисту, декларативне обмеження цілісності, динамічне обмеження цілісності, користувач бази даних, обмеження цілісності, обов’язковий метод захисту, організаційно-методичний захід, програмний засіб, процедурне обмеження цілісності, роль, семантичне обмеження цілісності, система захисту, структурне обмеження цілісності, технічний засіб, цілісність, юридичний західЦілісність даних
Терміном цілісність даних позначають достовірність і точність інформації, що зберігається в базі. Цілісність досягається забезпеченням відповідності даних певним додатковим обмеженням, крім тих, які накладаються схемою бази на структуру даних та їхні типи.
Обмеження цілісності — це правила, які обмежують усі можливі стани бази даних, а також переходи з одного стану в інший. Таким чином, обмеження цілісності визначають множину «допустимих» станів і переходів між ними. База даних перебуває в цілісному стані, якщо вона відповідає всім визначеним для неї вимогам цілісності.
8.1.1. Поняття про обмеження цілісності. Класифікація обмежень.
Обмеження цілісності класифікують за:
- походженням;
- способом підтримки;
- терміном перевірки;
- областю дії;
- можливістю обмежувати переходи бази даних з одного стану в інший.
За походженням обмеження цілісності поділяють на:
- структурні;
- семантичні.
Структурні обмеження цілісності — це обмеження, які випливають із властивостей структури даних, що зберігаються в базі.
Семантичні обмеження цілісності — це обмеження, що накладаються предметною областю, яка моделюється.
За способом підтримки виділяють такі класи обмежень цілісності:
- декларативні;
- процедурні.
Декларативні обмеження цілісності — це обмеження, що фіксують умови, яким має відповідати база даних. Завдання СКБД - не допускати порушення цих умов. Зазвичай декларативні обмеження цілісності визначаються мовою опису структури даних. Прикладом такого обмеження є: «Фонд зарплати факультету має бути рівним сумі фондів зарплати всіх його кафедр». Декларативні обмеження цілісності специфікуються фразою CONSTRAINT в описі таблиці або її полів.
Процедурні обмеження цілісності — це описи дій, спрямованих на забезпечення цілісності. Прикладом такого обмеження є: «Під час зміни фонду зарплати будь-якої з кафедр автоматично змінити фонд зарплати факультету так, щоб він дорівнював сумі фондів зарплати усіх кафедр». Процедурні обмеження цілісності специфікуються тригерами.
За часом перевірки обмеження цілісності поділяються на такі, що:
- перевіряються негайно;
- мають відкладену перевірку.
Обмеження, що перевіряються негайно, перевіряються безпосередньо у момент виконання операції, яка може порушити цілісність. Наприклад, неповторюваність назви факультету перевіряється під час додавання нового рядка до таблиці, яка містить інформацію про факультети, або під час заміни імені факультету в існуючому рядку таблиці. Якщо обмеження порушується, то операція блокується.
Обмеження цілісності з відкладеною перевіркою використовуються у тому випадку, коли для підтримання бази даних у несуперечному стані потрібно виконати дві або більше операції. Прикладом обмеження цілісності, яке не може бути перевірено негайно, є декларативне обмеження щодо фондів заробітної плати факультету та його кафедр. Після додавання нової кафедри з заданим фондом фінансування база даних переходить у суперечний стан, оскільки фонд фінансування факультету стає не рівним сумі фондів фінансування його кафедр. Для того щоб повернути базу даних у несуперечний стан, потрібно виконати ще одну операцію — оновити фонд фінансування факультету. У такому випадку ці дві операції об’єднуються в одну транзакцію і обмеження цілісності перевіряється після її завершення.
За областю дії розрізняють обмеження, що стосуються:
- відношення;
- атрибута;
- зв’язків між відношеннями;
- зв’язків між атрибутами.
За можливістю обмежувати переходи бази даних з одного стану в інший обмеження цілісності поділяються на:
- статичні;
- динамічні.
Статичні обмеження цілісності накладають обмеження на можливі стани бази даних. Наприклад, декларативні обмеження цілісності, що описуються далі, є статичними.
Динамічні обмеження цілісності задають обмеження на можливі переходи бази даних з одного стану в інший.
8.1.2 Декларативні обмеження цілісності
Під час розгляду декларативних обмежень цілісності постають такі питання:
- на які об’єкти моделі даних поширюються обмеження цілісності;
- якими є ці обмеження;
- як ті чи інші обмеження цілісності специфікуються;
- які існують механізми підтримання цілісності.
У реляційних базах даних до об’єктів, на які поширюються обмеження цілісності, належать такі:
- відношення;
- атрибути;
- зв’язки між відношеннями;
- зв’язки між атрибутами.
У сучасних СКБД є й багато інших об’єктів бази даних, щодо яких специфікуються обмеження цілісності.
Розглянемо, як задаються обмеження цілісності для об’єктів реляційних СКБД Специфікація буде подана мовою PL/SQL, що застосовується в СКБД Oracle і в якій для специфікації структурних обмежень цілісності використовується фраза CONSTRAINT (складова частина речень CREATE TABLE і ALTER TABLE).
8.1.2.1. Цілісність відношень
У реляційній СКБД цілісність відношень визначається за допомогою первинного ключа, для якого мають виконуватися такі обмеження цілісності:
- атрибути первинного ключа не можуть містити NULL-значень;
- значення первинного ключа (як окремого атрибута або сукупності атрибутів) не можуть дублюватися в межах відношення.
Цілісність за первинним ключем специфікується так:
CONSTRAINT <ім’я обмеження> PRIMARY KEY (<перелік полів>)
де <перелік полів> — поля, що складають первинний ключ.
Ця специфікація вказує, які саме поля є ключовими.Для специфікації можливих ключів використовується фраза UNIQUE.
Механізм підтримки цілісності відношень реалізує СКБД
CREATE TABLE КАФЕДРА
( #D NUMBER(2),
Назва VARCHAR2(9),
Завідувач VARCHAR2(10),
CONSTRAINT DepPK PRIMARY KEY (#D) );
8.1.2.2. Цілісність атрибутів
У реляційній СКБД цілісність атрибутів може забезпечуватися:
- зазначенням типів даних та їх розмірів (обов’язкова властивість);
- визначенням, чи є обов’язковим значення атрибута (NULL/NOT NULL);
- визначенням, чи може значення атрибута дублюватися (UNIQUE):
- зміною значення атрибута після його введення;
- встановленням умов, яким мають відповідати значення атрибута.
Для похідних атрибутів цілісність має гарантуватися процедурою їхнього обчислення. Цілісність атрибутів специфікується фразами NULL/NOT NULL і UNIQUE у визначенні атрибута (поля).
Якщо унікальними мають бути значення не окремих полів, а сукупності полів, то це вказується так:
CONSTRAINT <ім'я обмеження> UNIQUE (<перелік полів>)
Цілісність атрибутів специфікується також зазначенням обмеження
CONSTRAINT <і м’я обмеження> CHECK (<умова>)
Умова визначається на атрибутах відношення. Фраза CHECK може також вказуватися в означенні атрибута.
CREATE TABLE ГРУПА ( #GNUMBER(3),
#D NUMBER(3).
Курс NUMBER(l) CHECK (Course IN(1.2.3.4.5)).
Номер NUMBER(3) CHECK (Номер > 0).
Кількість NUMBER(2J CHECK (Кількість > 0).
#Куратор NUMBER(3) UNIQUE.
CONSTRAINT GrpPK PRIMARY KEY (#G).
CONSTRAINT GrpUNQ UNIQUE (Курс. Номер))
Зазначимо, що коли UNIQUE вказується для групи атрибутів, то йдеться про унікальність саме групи атрибутів, кожний з них окремо не обов’язково має бути унікальним. За допомогою фрази UNIQUE специфікуються також можливі ключі таблиці, тоді вона має використовуватися разом з обмеженням NOT NULL.
Механізм підтримки цілісності атрибутів реалізує СКБД.
8.1.2.3. Цілісність зв’язків між відношеннями
Цілісність зв’язків між відношеннями визначається зовнішніми ключами. Під час специфікації зовнішнього ключа вказується відповідний йому первинний ключ іншого відношення. Такий первинний ключ називається референційним.
Відношення, на яке здійснюється посилання за допомогою зовнішнього ключа, називається батьківським, а те, яке посилається, — дочірнім.
Якщо зовнішній ключ певного відношення може містити NULL-значення, це означає, що зв’язок даного відношення з іншим є факультативним. NOT NULL- специфікація стовпців зовнішнього ключа свідчить, що зв’язок є обов’язковим Означення зовнішнього ключа свідчить про наявність цілісності за посиланням: значення зовнішнього ключа має посилатися на значення первинного ключа іншого відношення. Тобто ситуація, коли зовнішній ключ має значення, відсутнє серед значень відповідного первинного ключа, розглядається як ситуація, що порушує цілісність за посиланням.
Цілісність за посиланням в Oracle специфікується так:
CONSTRAINT <назва обмеження> FOREIGN KEY («перелік полів 1>)
REFERENCES <ім'я таблиці>(<перелік полів 2>)
[ON DELETE {CASCADE | SET NULL}]
де «перелік полів 1> — поля, що становлять зовнішній ключ, <ім'я таблиці> — ім’я таблиці референційного ключа, <перелік полі в 2> — поля, з яких складається референційний ключ. В Oracle допускається, щоб «перелік полів 2> був не первинним ключем, а списком довільних полів, які мають специфікацію UNIQUE.
Механізм підтримки цілісності за посиланням реалізує СКБД. Розглянемо, як діє механізм під час видалення рядка з батьківської таблиці. Можливі три варіанти:
- рядок батьківської таблиці може бути видалений лише в тому випадку, якщо немає зовнішніх ключів, що посилаються на значення референційного ключа цього рядка:
- під час видалення рядка батьківської таблиці видаляються також усі рядки в інших таблицях, значення зовнішніх ключів яких посилаються на значення референційного ключа цього рядка (каскадне видалення);
- під час видалення рядка батьківської таблиці всі посилання на значення видаленого референційного ключа замінюються на NULL.
Відсутність фрази [ON DELETE {CASCADE | SET NULL}] вказує на перший варіант. Фраза ON DELETE CASCADE в специфікації референційної цілісності вказує на другий варіант, a ON DELETE SET NULL - на третій.
8.1.2.4. Цілісність зв’язків між атрибутами
Цілісність зв’язків між атрибутами визначається умовою, якій має відповідати сукупність атрибутів одного або кількох відношень. Такі умови специфікуються тригерами.
Наприклад, аби вказати, що кількість студентів на лекції не може перевищувати кількість місць в аудиторії, слід означити такий тригер:
CREATE TRIGGER Лекція Вставка Оновлення
BEFORE INSERT, UPDATE ON ЛЕКЦІЯ WHEN
(SELECT Місця
FROM АУДИТОРІЯ
WHERE АУДИТОРІЯ.#R =ЛЕКЦІЯ.#R) <
(SELECT Кількість
FROM ГРУПА
WHERE ГРУПА.#Є = ЛЕКЦІЯ.#Є)
BEGIN
ROLLBACK TRANSACTION
END
8.1.3 Динамічні обмеження цілісності
Динамічні обмеження цілісності - це обмеження, які встановлюють залежність між різними частинами бази даних у різні моменти часу. Виділяють такі різновиди динамічних обмежень: ситуаційно орієнтовані; операційно орієнтовані.
Ситуаційно - орієнтовані обмеження задаються у вигляді вимог, яким мають відповідати послідовні стани бази даних, тобто завдяки таким обмеженням фіксуються допустимі переходи бази даних з одного стану в інший.
Приклад можливих переходів значення атрибута Сімейний стан можна побачити на рис. 8.1.
Рисунок 8.1 - Можливі переходи значення атрибута «Сімейний стан»
Для специфікації ситуаційно-орієнтованих обмежень застосовуються ті самі засоби, що й для специфікації структурних обмежень. Окрім того, використовується можливість посилатися на значення бази даних до її оновлення й після.
Це досягається за допомогою уточнюючих фраз ОLD та NEW, що вживаються в посиланнях на значення, які зберігалися в базі даних до й після зміни її стану.
Зазвичай для опису динамічних обмежень використовуються тригери, які ініціюються під час зміни стану бази даних командами INSERT, UPDATE та DELETE.
Операційно-орієнтовані обмеження цілісності задаються у вигляді допустимих послідовностей операцій. Допустимість операції або послідовності операцій може залежати від поточного стану бази даних.
«Додавання в базу даних інформації про те, що х є чоловіком у допустиме лише в тому випадку, коли і х, і у в даний момент не є одруженими». Зазвичай подібні обмеження реалізуються за допомогою означення тригерів для відповідних операцій маніпулювання таблицями. Наприклад, якщо є відношення ПОДРУЖЖЯ (Чоловік, Дружина) та ОСОБА(Прізвище, Сімейний стан), то описане вище обмеження можна специфікувати так:
CREATE TRIGGER Подружжя_Перевірка
BEFORE INSERT ОN ПОДРУЖЖЯ
WHEN (ПОДРУЖЖЯ.Чоловік=ОСОБА.Прізвище AND
ОСОБА.Сімейний_Стан = 'Одружений') AND NEW
(ПОДРУЖЖЯ.Жінка = ОСОБА.Прізвище AND
ОСОБА.СімейнийСтан = ‘Одружена’)
BEGIN
ROLLBACK TRANSACTION
END
8.1.4. Семантичні обмеження цілісності
Семантичні обмеження цілісності, або прикладні правила цілісності, — це правила, які характеризують обмеження, що діють у предметній області.
Прикладами семантичних обмежень можуть бути:
- описане вище правило зміни стану атрибута Сімейний стан;
- «лист, що надійшов, вважається обробленим, коли з ним ознайомлені всі зацікавлені особи і щодо нього ухвалене відповідне рішення»:
- «розмір посадових окладів має варіюватися в межах від 3000 до 5000 грн.»;
- «студент може перейти на наступний курс або залишитися на тому самому, але не на попередньому»;
- «одна й та ж особа не може бути завідувачем двох кафедр».
Для специфікації семантичних обмежень використовують фразу C0NSTRAINT і тригери. У деяких випадках для підтримки семантичних обмежень цілісності пишуться спеціальні процедури, які зберігаються в СКБД, або спеціальні процедури, що входять до складу зовнішнього застосування.
8.1.5. Підтримка цілісності у разі виникнення перебоїв
Нагадаємо, що цілісність бази даних - це її відповідність модельованій предметній області у будь-який момент часу. Механізми опису обмежень цілісності забезпечують підтримку цілісності з «логічної» точки зору. Проте перебої в програмному або апаратному забезпеченні також можуть призвести до порушення цілісності (а в деяких випадках до повного руйнування бази даних). Для забезпечення цілісності бази даних на цей випадок пропонуються такі механізми:
- періодичне створення резервної копії бази даних;
- ведення журналу всіх змін стану бази даних.
Загальна схема підтримки цілісності на випадок перебоїв є такою. У певний момент часу створюється резервна копія бази даних. Починаючи з цього моменту в журналі фіксуються всі зміни, що виконуються в базі. Якщо в якийсь момент часу база даних виявляється настільки зіпсованою, що її неможливо відновити, то береться резервна копія і до неї застосовуються всі зафіксовані в журналі операції. У такий спосіб резервна копія стає актуальною.
8.2 Безпека даних
Дані в системах баз даних мають зберігатися з гарантуванням конфіденційності та безпеки. Інформація не може бути загубленою або викраденою. Під безпекою даних у базі розуміють захист даних від випадкового або спланованого доступу до них осіб, які не мають на це права, від несанкціонованого розкриття, зміни або видалення.
Безпека даних підтримується комплексом заходів і засобів.
- організаційно-методичні заходи - передбачають розроблення інструкцій та правил, які регламентують доступ до даних та їхнє використання, а також створення відповідних служб і підрозділів, які стежать за дотриманням цих правил;
- правові та юридичні заходи - передбачають юридичне закріплення прав і обов’язків щодо зберігання, використання й передавання в електронному вигляді даних, які підлягають захисту, на рівні державних законів та інших нормативних документів;
- технічні засоби захисту - це комплекс технічних засобів, які сприяють вирішенню проблеми захисту даних;
- програмні засоби захисту - це комплекс математичних, алгоритмічних і програмних засобів, шо сприяють вирішенню проблеми захисту даних.
Далі йтиметься лише про програмні засоби захисту.
Система захисту — це сукупність заходів, що вживаються в системі баз даних для гарантування необхідного рівня безпеки.
У сучасних СКБД підтримується один з двох найбільш розповсюджених методів забезпечення захисту даних: вибірковий чи обов’язковий.
Вибірковий метод захисту передбачає, що користувачі мають різні права (привілеї, повноваження) доступу до різних або одних тих самих об’єктів бази даних.
Обов’язковий метод захисту передбачає, що кожному об’єкту бази даних надається певний рівень секретності, а кожному користувачу — певний рівень допуску. Доступ до об’єкта даних є лише в тих користувачів, які мають відповідний для цих даних рівень допуску.
Зазначимо, що вибірковий метод гнучкіший, аніж обов’язковий. Безпека даних може гарантуватися такими механізмами.
- Реєстрація користувачів. Будь-який користувач для отримання доступу до бази даних має бути зареєстрований у системі під певним ім’ям і певним паролем.
- Керування правами доступу. Адміністратор може визначити, яким користувачам до яких даних дозволяється доступ і які саме операції над цими даними (вибирання, введення, зміну чи видалення) він може виконувати
- Ідентифікація та підтвердження автентичності всіх користувачів або додатків, що отримують доступ до бази даних. Будь-який користувач або додаток, звертаючись до системи баз даних, мають вказати своє ім’я і пароль Ім’я ідентифікує користувача, а пароль підтверджує автентичність імені. Ці два кроки - ідентифікація та підтвердження автентичності ‒ виконуються лише один раз під час з’єднання з базою даних і залишаються чинними до завершення сеансу роботи з базою даних конкретного користувача чи застосування
- Автоматичне ведення журналів доступу до даних. У цих журналах протоколюються операції, виконані над даними користувачами, з метою подальшого аналізу на випадок отримання доступу до бази в обхід системи захисту.
- Шифрування даних на зовнішніх носіях. Здійснюється криптографічними методами на випадок несанкціонованого копіювання даних із зовнішніх носіїв. Припускається, що адміністратор бази даних має всі необхідні повноваження на виконання функцій, пов’язаних із захистом даних.
Довірче й адміністративне керування доступом
Довірче керування доступом до даних - це такий тип керування, коли система захисту дає змогу звичайним користувачам не лише отримувати доступ до певних даних, але й передавати повноваження на доступ до них іншим користувачам без адміністративного втручання.
Адміністративне керування доступом до даних ‒ це таке керування, за якого система захисту дає змогу передавати повноваження на доступ до даних лише спеціально авторизованому користувачу (адміністратору).
8.2.1. Реєстрація користувачів
Будь-який користувач для отримання доступу до бази даних має бути зареєстрований у системі під певним ім’ям і паролем. Реєстрація необхідна для того, щоб знати, з ким має справу система у кожний момент часу. Зазначимо, що під користувачем розуміється не лише фізична особа, але й будь-яке джерело, що в змозі звернутися до бази даних (прикладна програма, операційна система, інтернет-додаток тощо).
Спрощений вигляд конструкції, що застосовується для означення користувача, є таким:
CREATE USER <користувач> UDENTIFIED <пароль>
Тут <користувач> — ім’я користувача, а <пароль> - пароль.
Спочатку користувач не має жодних повноважень. Щоб користувач міг виконувати ті чи інші операції над базою даних, йому необхідно передати відповідні повноваження.
8.2.3. Керування правами доступу
8.2.3.1. Кому надаються права доступу
Права доступу надаються всім, хто звертається до бази даних. Це можуть бути користувачі, прикладні програми, операційні системи тощо. Кожен, хто звертається до бази даних, має насамперед вказати своє ім’я і пароль. Для СКБД не важливо, хто саме звертається до бази даних, головне, щоб усі, хто хоче отримати можливість працювати з нею, були заздалегідь зареєстровані в системі
У деяких випадках може знадобитися виділити користувачів системи, які мають однакові повноваження. Наприклад, усі співробітники відділу кадрів можуть мати одні й ті ж права, а співробітники планового відділу — інші, причому також однакові. Для реалізації такого розподілу прав вводиться поняття ролі.
Роль — це сукупність повноважень, які можуть передаватися користувачам або іншим ролям. Можна присвоїти повноваження ролям, а згодом приписувати ролі користувачам. Коли користувачу присвоєна роль, він має ті повноваження, які приписані ролі.
Роль має всі повноваження, які присвоєні їй явно, й усі повноваження, які передані їй іншими ролями.
Спрощений синтаксис означення ролі є таким:
CREATE ROLE <роль> IDENTIFIED <пароль>
Тут <роль> — ім’я ролі.
Спочатку роль є порожньою, тобто не має жодного повноваження.
8.2.3.2. Умови надання прав доступу
Іноді доцільно специфікувати додаткові умови, за дотримання яких користувачам надаються певні права доступу. Йдеться про умови, які не визначаються іншими складовими прав доступу (кому надається доступ, до яких даних, які операції дозволяються).
- часові характеристики (наприклад, «права доступу діють лише між 16 і 17 годинами першого понеділка кожного місяця»):
- локалізація комп’ютерів у локальній мережі (наприклад, «права доступу діють лише для комп’ютерів, установлених у плановому відділі»).
У більшості СКБД немає засобів явного опису додаткових умов, що обмежують права доступу. За необхідності такі умови можуть бути специфіковані у прикладних системах.
8.2.3.3. Об’єкти, на які поширюються права доступу
Зазвичай у контексті прав доступу розрізняють об’єкти двох класів: системні й об’єкти бази даних. До системних об’єктів належать: база даних, кластери, тригери, транзакції тощо. До об’єктів бази даних належать таблиці, віртуальні таблиці та процедури. Крім того, в таблицях і віртуальних таблицях можуть додатково вказуватися стовпці, щодо яких специфікуються права доступу.
У деяких випадках виникає необхідність специфікувати рядки певної таблиці, що стосуються особи, для якої визначаються права доступу. Наприклад:
- будь-який користувач може змінювати у відношенні СЛУЖБОВЕЦЬ значення полів лише того рядка, який стосується його самого (тобто він може змінювати лише свої особисті лані), за винятком величини його зарплати
- у відношенні СЛУЖБОВЕЦЬ змінювати зарплату може лише той користувач, який є начальником відділу даного службовця
8.2.3.4. Операції, щодо яких специфікуються права доступу
До операцій, стосовно яких специфікуються права доступу, належать стандартні операції з маніпулювання об’єктами бази даних, а саме:
- означення, переозначення й видалення таблиці або віртуальної таблиці;
- вибірка, додавання, видалення, оновлення рядків у таблиці або віртуальній таблиці:
- виконання збережених процедур.
У кожній конкретній СКБД наведений список операцій над об’єктами бази даних може розширюватися.
8.2.3.5. Можливість передавання прав доступу іншим особам
Інколи користувачу надаються не лише права на маніпулювання тими чи іншими об’єктами бази даних, але й можливість передавати ці права іншим. Наприклад, користувачу передається право створити таблицю, вводити в неї дані, змінювати і видаляти їх, навіть видалити всю таблицю. Він стає повноправним власником таблиці і може з нею робити що завгодно. Тому не дивно, що йому надають дозвіл на передавання будь-яких прав на цю таблицю іншим користувачам.
8.2.3 Специфікація повноважень в СКБД Oracle
Розглянемо, як означуються права доступу до даних в СКБД Oracle. Інструкція, що дозволяє означити користувача бази даних. Щойно створений користувач не має жодних повноважень. Надання повноважень користувачу здійснюється командою GRANT.
Команда GRANT дає змогу передати повноваження користувачам або ролям. Спрощений синтаксис команди є таким:
GRANT { <операція> | ALL} [(<список стовпців>)] ON <список об'єктів> ТО {<користувач> І <роль> | PUBLIC} WITH GRANT OPTION
Специфікатор <операція> вказує, щодо яких операцій описується повноваження. Такими операціями можуть бути: SELECT, INSERT, UPDATE, DELETE та інші. Фраза ALL вказує, що повноваження передаються щодо всіх операцій.
У списку об’єктів зазначаються всі об’єкти бази даних, щодо яких специфікуються повноваження. Цей список містить посилання на таблиці й віртуальні таблиці. За допомогою параметра <список стовпці в> можна додатково вказати стовпці таблиць.
Повноваження може бути передане користувачу, ролі або всім, хто вказується у фразі ТО.
Якщо повноваження передається користувачу, він одержує право виконувати операції згідно з цим повноваженням. Коли повноваження передається ролі, вона ним поповнюється.
Фраза WITH GRANT OPTION означає, що одержувач повноваження отримує також право передавати це повноваження іншому користувачу або ролі Розглянемо кілька прикладів надання й передавання прав доступу:
Надати користувачу на ім’я Джон права на виконання будь-яких операцій над таблицею ФАКУЛЬТЕТ і дозвіл на передавання цих прав іншим користувачам. GRANT ALL ON ФАКУЛЬТЕТ ТО Джон WITH GRANT OPTION
Надати всім користувачам право переглядати дані з таблиці Лекція.
GRANT SELECT ON ЛЕКЦІЯ ТО PUBLIC
Надати користувачу на ім’я Джон право змінювати стовпець фонд у таблиці КАФЕДРА.
GRANT UPDATE (Фонд) ON КАФЕДРА ТО Джон
8.2.4. Обов’язкові методи захисту
Обов’язкові методи захисту, або методи обов’язкового керування доступом застосовуються до баз, в яких дані мають статичну або жорстку структуру, характерну, наприклад, для урядових або військових організацій. Як уже наголошувалося, основна ідея полягає в тому, що кожний об’єкт даних має певний рівень секретності, а кожний користувач — певний рівень доступу. Передбачається, що ці рівні утворюють строгий ієрархічний порядок (наприклад, цілком таємно, таємно, для службового користування тощо).
8.2.4.1 Ведення журналів доступу
Не буває невразливих систем захисту. Настирливий зловмисник завжди може знайти спосіб подолати всі системи контролю і захисту. Тому під час роботи з дуже важливими даними необхідно реєструвати у відповідному журналі всі події, що стосуються функціонування системи захисту. У зв’язку з цим система захисту має надавати можливість виконувати наведені далі дії:
- реєструвати всі спроби отримання доступу до системи баз даних, у тому числі й безуспішні. Ця реєстрація має бути максимально повного (повинні реєструватися відомості про те, хто отримував доступ або намагався його отримати, з якого термінала або вузла мережі, о котрій годині тощо);
- реєструвати дії користувачів з використання всіх ресурсів системи, зокрема й даних, а також інші дії та події, які можуть вплинути на захист даних;
- надавати користувачам, які мають адміністративні повноваження, можливість переглядати й аналізувати результати реєстрації, виявляти небезпечні ситуації, встановлювати причини їхнього виникнення та знаходити користувачів, відповідальних за порушення політики безпеки.
Навіть сама лише констатація факту, що в системі підтримується реєстрація всіх дій користувачів, у деяких випадках має суттєве значення для запобігання несанкціонованому проникненню в систему.
8.2.4.2. Обхід системи захисту
До носіїв, на яких записані дані, можна отримати доступ в обхід системи захисту. Якщо отримати доступ до файлів операційної системи, які містять дані з бази, то можна прочитати вміст цих файлів, оскільки фірми-розробники переважної більшості СКБД створюють формати зберігання даних такими, що вони є доступними широкому колу користувачів і застосувань. Більше того, той, хто отримав доступ до файлів бази, може змінити їхній вміст або навіть видалити їх.
Найефективнішими засобами боротьби з такою загрозою є використання методів криптографії, тобто шифрування інформації. Коли дані записані в базі у зашифрованому вигляді, тоді той, хто отримав доступ до них в обхід системи захисту, стикається з проблемою дешифрування. В ідеальному випадку метод шифрування має бути таким, щоб витрати на дешифрування перевищували виграш від володіння інформацією або щоб час дешифрування перевищував час. протягом якого дані розглядаються як секретні.
У системах розподілених баз даних, коли інформація пересилається каналами зв’язку, небезпечними є різні форми перехоплення даних, що передаються. Єдиним контрзаходом, який дає змоіу запобігти подібним перехопленням, є шифрування даних перед їхнім передаванням каналами зв’язку.