Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розділ 6.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
453.63 Кб
Скачать

  1. Мова адміністрування бд (мабд)

Розділ мови SQL, який передбачає набір інструментальних засобів для адміністрування даних, змінами в базі даних та правилами виконання інструкцій SQL. Це декілька груп операторів, досить різних за функціона­льністю; концептуально поєднаних тільки ідеєю адміністрування. Зокрема це:

  1. Група Data Control Language (dcl)

Оператори Data Control Language, застосовуються для здійснення адміністративних функцій, що надають або відміняють право (привілей) використовувати базу даних, таблиці в базі даних, а також виконувати ті або інші операторів SQL. Оператори DCL представлені в табл.

Таблиця 6.1 Оператори DCL

Оператор

Опис

GRANT

Застосовується для надання приві­лею

REVOKE

Застосовується для відміни приві­лею

  1. Група Transaction Control Language (tcl)

Оператори Transaction Control Language застосовуються для управління змінами, виконаними групою операторів DML. Оператори TCL представлені в табл.

Таблцця 6.2. Оператори ТСL

Оператор

Опис

COMMIT

Застосовується для завершення трансак­ції і збереження змін в базі даних

ROLLBACK

Застосовується для відкоченняу трансак­ції і відміни змін в базі даних

SET TRANSACTION

Застосовується для встановлення пара­метрів доступу до даних в поточній тран- закції

  1. Група Cursor Control Language (ccl)

Оператори Cursor Control Language використовуються для визначення курсора, підготовки SQL-виразів для виконання, а також для деяких інших операторів. Оператори CCL представлені в табл.

Таблиця 6.3. Оператори CCL

Оператор

Опис

DECLARE CURSOR

Застосовується для визначення курсора для запиту

OPEN CURSOR

Застосовується для відкриття курсора при отриманні результатів запиту

FETCH

Застосовується для отримання рядка з резуль­татів запиту

CLOSE CURSOR

Застосовується для закриття курсора

PREPARE

Застосовується для підготовки оператора SQL для виконання

EXECUTE

Застосовується для виконання оператора SQL

DESCRIBE

Застосовується для опису підготовленого за­питу

Окремі оператори цієї групи можуть з’явитися в конкретних СУБД. Наприклад, оператор EXPLAIN для Microsoft SQL Server 7.0 застосовується для опису плану запиту. Для СУБД Oracle цю функцію виконує оператор EXPLAIN PLAN.

  1. Пр иклади використання операторів адміністрування

Розглянемо деякі приклади використання операторів адмініструван­ня. Зауважимо спочатку, що ця частина мови SQL виникла під впливом перспектив використання баз даних в мережевому середовищі і тому її

конкретна реалізація більше залежить від розробників конкретних СУ6Д особливо таких гігантів як IBM, Oracle та Microsoft, ніж інші частини SQL

  1. Класифікація категорій користувачів СУБД

Спільним для переважної більшості користувачів сучасних СУБД с розуміння, що користувачів треба класифікувати за категоріями, напри­клад таку:

  1. Прикладні програмісти - відповідають за створення програм, шо використають базу даних. В розумінні захисту даних програміст може бути як користувачем, що має привілею створення об'єктів даних і маніпулювання ними, так і користувачем, шо має привілею тільки маніпулювання даними.

  2. Кінцеві користувачі бази даних - працюють із БД безпосередньо через термінал або робочу станцію. Як правило, кінцеві користувачі мають строго обмежений набір привілеїв маніпулювання даними. Цей набір може визначатися при конфігуруванні інтерфейсу кінцевого користувача й не змінюватися. Політику безпеки в цьому випадку визначає адміністратор безпеки або адміністратор бази даних (якщо це та сама посадова особа).

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

В принципі цю класифікацію можна уточнювати та деталізувати для сучасних СУБД. Розглянемо як приклад реалізацію системи адміністру­вання в MS SQL Server. Для одержання доступу до даних необхідно, щоб обліковий запис користувача відповідав якомусь користувачу бази даних (database user). Користувач бази даних - сукупність дозволів та обмежень на роботу з даними в конкретній базі даних. На другому етапі обліковий запис користувача перетворюється в користувача бази даних, і одержує всі привілеї, що відповідають цьому користувачеві бази даних. Другий етап зачіає систему безпеки конкретної бази даних, а не всього сервера СУБД, У різних базах даних однієї й того ж облікового запису можуть відповідати однакові або різні імена користувача бази даних з різними правами досту­пу. У тому випадку, коли обліковий запис користувача не відображається в користувача бази даних, клієнт все-таки може одержати доступ до бази да­них під гостьовим ім'ям guest (якщо воно не заборонено адміністратором

БД). Гістьовий вхід дозволяє отримати мінімальний доступ до даних тільки в режимі читання. Користувачі баз даних можуть поєднуватися в ролі (іно­ді - групи) для спрощення керування системою безпеки.

Ролі бази даних поєднують декількох користувачів в адміністративну одиницю й дозволяють призначати права доступу до об’єктів бази даних для ролі, наділяючи цими правами всіх учасників цієї ролі. Розрізняють користувальницькі й вбудовані ролі, Вбудовані ролі створюються автома­тично при встановленні сервера СУБД (і не можуть мінятися). Розрізняють вбудовані ролі рівня СУБД і рівня конкретної бази даних. Гак, наприклад, в SQL Server 2000 є такі ролі сервера:

Таблиця 6.1. Ролі сервера

в SQL Server 2000

Вбудована роль сервера

Призначення

Sysadmin

Може виконувати будь-які дії в SQL Server

Serveradmin

Виконує конфігурування й вимикання сервера

Setupadmin

Управляє зв'язаними серверами та проце­дурами, що автоматично запускаються при запуску SQL Server

Securityadmin

Управляє обліковими записами й правами на створення бази даних, також може чи­тати журнал помилок.

Processadmin

Управляє процесами, запущеними в SQL

Server Dbcreator

Може створювати й модифікувати бази даних

Diskadmin

Управляє файлами SQL Server

Bukladmin

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

SQL Server 2000 підтримує такі вбудовані ролі рівня бази даних:

Таблиця 6.2. Ролі рівня бази даних

Вбудована роль користувача

Призначення

Db owner

Має усі права в базі даних

Db accessadmin

Може додавати або видаляти користувачів

Db securityadmin

Управляє всіма дозволами, об'єктами, ро­лями й членами ролей

Dbjddladmin

Може виконувати будь-які команди DDLS крім GRANT, DENY\ REVOKE

Db backupoperator

Може виконувати команди DBCC,

CHECKPOINT, BACKUP

Db_datareader

Може переглядати будь-які дані в будь-якій таблиці

Db_datawriter

Може модифікувати будь-які дані в будь* якій таблиці

Db_denydatareader

Забороняється переглядати дані в будь- який таблиці

Db_denydatawriter

Забороняється модифікувати дані в будь- якій таблиці


Крім зазначених ролей існує ще одна роль, яку не вилучають - public. Учасниками цієї ролі є всі користувачі, що мають доступ до бази даних. Не можна явно вказати учасників цієї ролі, тому що всі користувачі вже включені в неї.