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

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 є досить складним продуктом, підвищення рівня його захисту раціональніше проводити у декілька етапів. У даному розділі описується методика поетапної настройки сервера по рівнях інформаційної інфраструктури:

  • захист мережевого обміну;

  • захист операційної системи;

  • захист компонентів бази даних;

  • захист програм, що використовують базу даних.

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