
- •Мова адміністрування бд (мабд)
- •Група Data Control Language (dcl)
- •Група Transaction Control Language (tcl)
- •Група Cursor Control Language (ccl)
- •Пр иклади використання операторів адміністрування
- •Створення і ліквідація ролей
- •Передача привілеїв і ролей
- •Уявлення (View)
- •Поняття збереженої процедури
- •Збережені процедури в конкретних середовищах
- •Типи збережених процедур
- •Створення, зміна і видалення збережених процедур
- •Виконання збереженої процедури .
- •6.5. Визначення тригера в стандарті мови sql
- •Реалізація тригерів в середовищі ms sql Server
- •Типи тригерів
- •Програмування тригера
- •6.7. Технології використання sql
- •Поняття інтерактивного sql
- •Утиліта інтерактивного доступу isql субд Sybase sql Anywhere
- •Приклад використання інтерактивного sql в субд mysql
Мова адміністрування бд (мабд)
Розділ мови SQL, який передбачає набір інструментальних засобів для адміністрування даних, змінами в базі даних та правилами виконання інструкцій SQL. Це декілька груп операторів, досить різних за функціональністю; концептуально поєднаних тільки ідеєю адміністрування. Зокрема це:
Група Data Control Language (dcl)
Оператори Data Control Language, застосовуються для здійснення адміністративних функцій, що надають або відміняють право (привілей) використовувати базу даних, таблиці в базі даних, а також виконувати ті або інші операторів SQL. Оператори DCL представлені в табл.
Таблиця
6.1 Оператори DCL
Оператор
Опис
GRANT
Застосовується
для надання привілею
REVOKE
Застосовується
для відміни привілею
Група Transaction Control Language (tcl)
Оператори Transaction Control Language застосовуються для управління змінами, виконаними групою операторів DML. Оператори TCL представлені в табл.
Таблцця
6.2.
Оператори
ТСL
Оператор
Опис
COMMIT
Застосовується
для завершення трансакції і
збереження змін в базі даних
ROLLBACK
Застосовується
для відкоченняу трансакції і
відміни змін в базі даних
SET
TRANSACTION
Застосовується
для встановлення параметрів
доступу до даних в поточній тран-
закції
Група 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.
Пр иклади використання операторів адміністрування
Розглянемо деякі приклади використання операторів адміністрування. Зауважимо спочатку, що ця частина мови SQL виникла під впливом перспектив використання баз даних в мережевому середовищі і тому її
конкретна реалізація більше залежить від розробників конкретних СУ6Д особливо таких гігантів як IBM, Oracle та Microsoft, ніж інші частини SQL
Класифікація категорій користувачів СУБД
Спільним для переважної більшості користувачів сучасних СУБД с розуміння, що користувачів треба класифікувати за категоріями, наприклад таку:
Прикладні програмісти - відповідають за створення програм, шо використають базу даних. В розумінні захисту даних програміст може бути як користувачем, що має привілею створення об'єктів даних і маніпулювання ними, так і користувачем, шо має привілею тільки маніпулювання даними.
Кінцеві користувачі бази даних - працюють із БД безпосередньо через термінал або робочу станцію. Як правило, кінцеві користувачі мають строго обмежений набір привілеїв маніпулювання даними. Цей набір може визначатися при конфігуруванні інтерфейсу кінцевого користувача й не змінюватися. Політику безпеки в цьому випадку визначає адміністратор безпеки або адміністратор бази даних (якщо це та сама посадова особа).
Адміністратори баз даних - утворюють особливу категорію користувачів СУБД. Вони створюють самі бази даних, здійснюють технічний контроль функціонування СУБД, забезпечують необхідну швидкодію системи. В обов'язках адміністратора, крім того, входить забезпечення користувачам доступу до необхідного їм даним, а також написання (або надання допомоги у визначенні) необхідних користувачеві зовнішніх подань даних. Адміністратор визначає правила безпеки й цілісності даних.
В принципі цю класифікацію можна уточнювати та деталізувати для сучасних СУБД. Розглянемо як приклад реалізацію системи адміністрування в 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. Учасниками цієї ролі є всі користувачі, що мають доступ до бази даних. Не можна явно вказати учасників цієї ролі, тому що всі користувачі вже включені в неї.