Ім'я файлу: Безпека й SQL.docx
Розширення: docx
Розмір: 20кб.
Дата: 13.04.2020
скачати

Доповідь на тему:

«SQL и безпека.»

Вступ

При зберіганні даних в будь-якій системі управління базами даних (СУБД) одним з головних завдань користувача є забезпечення безпеки цих даних. Проблема безпеки особливо гостро стоїть в реляційних базах даних, оскільки інтерактивний SQL дозволяє легко отримати до них доступ.

Принципи захисту даних, що застосовуються в SQL.

За реалізацію системи безпеки відповідає СУБД. Мова SQL є фундаментом системи безпеки реляційної СУБД: вимоги, що пред'являються до системи захисту інформації в базі даних, формулюються за допомогою інструкцій SQL.

З захистом даних в SQL пов'язані три основні концепції:

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

  • Об'єкти бази даних є тими елементами, чий захист може здійснюватися за допомогою SQL. Зазвичай забезпечується захист таблиць, але й інші об'єкти, такі як форми, прикладні програми й цілі бази даних, також можуть бути захищені.

  • Привілеї – це права користувача на проведення тих чи інших дій над певним об'єктом бази даних.

Надання привілеїв (GRANT). Скасування привілеїв (REVOKE).

Для введення елементів системи безпеки застосовується інструкція GRANT, за допомогою якої тим чи іншим користувачам надаються певні привілеї на використання тих чи інших об'єктів бази даних. В інструкції GRANT задається комбінація ідентифікатора користувача, об'єкта і привілеїв. Надані привілеї можна пізніше анулювати за допомогою інструкції REVOKE.

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

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

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

У великих виробничих базах даних часто є групи користувачів зі схожими завданнями. У межах кожної групи всі користувачі працюють з однаковими даними і повинні мати ідентичні привілеї. Згідно стандарту ANSI/ISO, з групами користувачів можна вчинити одним з двох способів:

1. Кожному члену групи можна присвоїти один і той же код користувача.

2. Усім членам групи можна присвоїти різні ідентифікатори користувача.

Ті дії, які користувач має право виконувати над об'єктом бази даних, називаються привілеями користувача по відношенню до даного об'єкту. У стандарті SQL для таблиць визначені чотири привілеї:

1. Привілей SELECT дозволяє отримувати дані з таблиці.

2. Привілей INSERT дозволяє додавати нові записи в таблицю.

3. Привілей DELETE дозволяє видаляти записи з таблиці.

4. Привілей UPDATE дозволяє модифікувати записи у таблиці або псевдотаблиці.

Коли користувач створюєте таблицю за допомогою інструкції CREATE TABLE, він стаєте її власником і отримуєте всі привілеї для цієї таблиці (SELECT, INSERT, DELETE, UPDATE та інші привілеї, які є в СУБД). Інші користувачі спочатку не мають ніяких привілеїв на щойно створену таблицю. Щоб вони отримали доступ до таблиці, власник повинен явно надати їм відповідні привілеї за допомогою інструкції GRANT.

У багатьох комерційних СУБД крім привілеїв SELECT, INSERT, DELETE і UPDATE, встановлених стандартом SQL, по відношенню до таблиць можуть бути видані додаткові привілеї. Наприклад, в Oracle та Informix передбачені привілеї ALTER та INDEX. Маючи привілей ALTER для якої-небудь таблиці, користувач може за допомогою інструкції ALTER TABLE модифікувати структуру даної таблиці; маючи привілей INDEX, користувач може за допомогою інструкції CREATE INDEX створити індекс для таблиці.

Висновок

Незалежно від типу СУБД, в базах даних з використанням SQL безпека забезпечується за допомогою мови SQL. Захист даних в SQL базується на привілеях (дозволених діях), котрі надаються користувачам (або групам користувачів), які мають ідентифікатори на конкретні об'єкти бази даних (наприклад, таблиці або псевдотаблиці). В свою чергу, псевдотаблиці відіграють ключову роль у захисті даних, тому що вони застосовуються для обмеження доступу до рядків і стовпців таблиць.

Контроль за доступом до інформації здійснює сервер бази даних. Користувач не має доступу безпосередньо до файлів з базою даних. Він навіть не знає, як і де зберігаються ці дані. При виконанні запиту користувача SQL-сервер отримує його, визначає ім'я користувача і за внутрішньою інформацією визначає, чи може ця особа виконати цей запит. Якщо має право, то сервер робить обробку запиту, якщо ні – користувачу надсилається повідомлення про помилку. Як зберігається інформація про привілеї – це внутрішня справа SQL-сервера.
скачати

© Усі права захищені
написати до нас