- •1. Правила безпеки
- •2. Архітектура системи безпеки sql server 2000
- •2.1. Режими аутентифікації
- •2.2. Компоненти структури безпеки
- •2.3. Ролі сервера
- •2.4. Ролі баз даних
- •2.5. Ролі програми
- •3. Обмеження доступу до файлів sql server
- •2.6. Захист даних
- •Шифрування даних
- •3.1. Права доступу
- •3.2. Права на доступ до об'єктів баз даних
- •3.3. Заборона доступу
- •4. Підвищення рівня захисту microsoft sql server 2000
- •4.1. Захист мережевого обміну
- •4.2. Захист операційної системи
- •4.3. Захист компонентів бази даних
- •4.4. Аудит сервера sql Server
- •Створення гнучкої системи безпеки
- •5.1. Вибір схеми аутентифікації
- •5.3. Збір користувачів в групи
- •5.4. Надання доступу до баз даних
- •5.5. Призначення дозволів
- •5.6. Проста система безпеки
- •Висновок
3.3. Заборона доступу
Система безпеки SQL Server має ієрархічну структуру. Це дозволяє ролям бази даних включати облікові записи і групи Windows NT, користувачів і ролі SQL Server. Користувач же, у свою чергу, може брати участь в декількох ролях. Наслідком ієрархічної структури системи безпеки є те, що користувач може одночасно мати різні права доступу для різних ролей. Якщо одна з ролей, в яких полягає користувач, має дозвіл на доступ до даним, то користувач автоматично має аналогічні права. Проте, може потрібно заборонити можливість доступу даним. Коли забороняється користувачеві доступ до даним або командам TRANSACT-SQL (deny access), тим самим анулюються всі дозволи на доступ, отримані користувачем на будь-якому рівні ієрархії. При цьому гарантується, що доступ залишиться забороненим незалежно від дозволів, наданих на більш високому рівні.
Хай, наприклад, потрібно створити в базі даних таблицю, доступ до якої за умовчанням наданий всім користувачам, але необхідно тимчасово обмежити доступ певних користувачів до цієї таблиці. Замість того щоб відкликати дозволи на доступ, можна створити роль, якою буде заборонений доступ до цієї таблиці, і включити користувачів в цю роль. Простіше контролювати декілька записів в ролі, яка забороняє доступ, чим маніпулювати безліччю розрізнених облікових записів, намагаючись пригадати, чи повернули права доступу користувачеві назад. При великій кількості користувачів такий підхід дозволяє спростити адміністрування системи безпеки.
Для заборони користувачеві доступу до об'єктів бази даних потрібно використовувати команду DENY:
DENY
(ALL [PRIVILEGES] | permission[,...n]}
{
[(columnC....n])] ON {table | view} | ON {table | vi ew} [-(columnC . . . n])] I ON {stored_procedure | extended_procedure}
TO security_account[....n] [CASCADE]
Для заборони виконання команд TRANSACT-SQL застосовується інша команда:
DENY {ALL | statement^... .n]} ТЕ security_account[....n]
Параметри даної команди аналогічні параметрам команди GRANT. Параметр CASCADE дозволяє відкликати права не тільки у даного користувача, але також і у всіх тих користувачів, кому він надав дані права. Пояснимо сенс вищесказаного на прикладі. Хай надано користувачеві Sheridan певні права:
GRANT CREATE TABLE
ТО Sheridan
WITH GRANT OPTION
Допустимо, Sheridan надає аналогічні права деяким користувачам. Якщо згодом потрібно буде відкликати дозволи у Sheridan, потрібно виконати команду:
DENY CREATE TABLE ТЕ Sheridan CASCADE
При цьому будуть відкликані і всі дозволи, які Sheridan надав іншим користувачам.
4. Підвищення рівня захисту microsoft sql server 2000
Сервери баз даних займають свою нішу в інформаційній інфраструктурі підприємства. Часто в них зберігається конфіденційна інформація, порушення доступності, цілісності або конфіденційності якої може привести до значних фінансових втрат.
Оскільки SQL Server є досить складним продуктом, підвищення рівня його захисту раціональніше проводити у декілька етапів. У даному розділі описується методика поетапної настройки сервера по рівнях інформаційної інфраструктури:
захист мережевого обміну;
захист операційної системи;
захист компонентів бази даних;
захист програм, що використовують базу даних.
Рекомендації по захисту програм виходять за рамки даного розділу, оскільки у великій мірі залежать від конкретної програми. Загальний підхід до розмежування доступу до об'єктів бази даних описаний в розділі, присвяченому аудиту.
