Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 17БД.doc
Скачиваний:
29
Добавлен:
30.05.2020
Размер:
172.03 Кб
Скачать

17. Лекція

ТЕМА: Основні методи захисту даних. Управління користувачами:

МЕТА: Розглянути систему безпеки, прийнята в язиці SQL. Висловлюються загальні правила розмежування доступу. Описуються режими аутентифікації і компоненти структури безпеки (користувачі, ролі баз даних), адміністрування системи безпеки (створення облікових записів і управління ними, управління користувачами і ролями). Дається визначення прав користувача на доступ до об'єктів бази даних. Розглядаються неявні права, питання заборони доступу і неявного відхилення доступу, а також конфлікти доступу.

ПЛАН

1 Управління користувачами в середовищі MS SQL Server

2 Адміністрування системи безпеки

2.1 Ролі

3 Управління доступом до даних

3.1 Визначення привілеїв в стандарті язика

3.2 Надання привілеїв користувачам

3.3 Відміна наданих користувачам привілеїв

4 Реалізація прав на доступ до об'єктів баз даних в середовищі MS SQL Server

4.1 Категорії прав в середовищі MS SQL Server

4.2 Надання прав

4.3 Права на виконання команд SQL

4.4 Неявні права

4.5 Заборона доступу

4.6 Неявне відхилення доступу

4.7 Конфлікти доступу

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

1 Управління користувачами в середовищі ms sql Server

Розглянемо питання створення користувачів в середовищі MS SQL Server.

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

В системі SQL-сервер організована дворівнева настройка обмеження доступу до даних. На першому рівні необхідно створити так званий обліковий запис користувача (login), що дозволяє йому підключитися до самого серверу, але не дає автоматичного доступу до баз даних. На другому рівні для кожної бази даних SQL-серверу на підставі облікового запису необхідно створити запис користувача. На основі прав, виданих користувачу як користувачу бази даних (user), його реєстраційне ім'я (login) дістає доступ до відповідної бази даних. В різних базах даних login одного і того ж користувача може мати однакові або різні імена user з різними правами доступу. Інакше кажучи, за допомогою облікового запису користувача здійснюється підключення до SQL-серверу, після чого визначаються його рівні доступу для кожної бази даних окремо.

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

Отже, на рівні серверу система безпеки оперує наступними поняттями:

  • аутентифікація ;

  • обліковий запис ;

  • вбудовані ролі серверу.

На рівні бази даних застосовуються наступні поняття;

  • користувач бази даних;

  • фіксована роль бази даних;

  • призначена для користувача роль бази даних.

Режими аутентифікації

SQL Server пропонує два режими аутентифікації користувачів:

  1. режим аутентифікації засобами Windows NT/2000;

  2. змішаний режим аутентифікації (Windows NT Authentication and SQL Server Authentication).

2 Адміністрування системи безпеки

Для створення користувача в середовищі MS SQL Server слід зробити наступні кроки:

  • Створити в базі даних обліковий запис користувача, вказавши для нього пароль і прийняте за умовчанням ім'я бази даних (процедура sp_addlogin ).

  • Додати цього користувача у все необхідні бази даних (процедура sp_adduser ).

  • Надати йому в кожній базі даних відповідні привілеї (команда GRANT ) .

Створення нового облікового запису може бути проведено за допомогою системної збереженої процедури:

sp_addlogin

[@login=] 'обліковий_запис'

[, [@password=] 'пароль']

[, [@defdb=] 'база_даних_по_замовчанню']

Після завершення аутентифікації і отримання ідентифікатора облікового запису (login ID) користувач вважається зареєстрованим, і йому надається доступ до серверу. Для кожної бази даних, до об'єктів якій він має намір дістати доступ, обліковий запис користувача (login) асоціюється з користувачем (user) конкретної бази даних, що здійснюється за допомогою процедури:

sp_adduser

[@loginame=] 'обліковий_запис'

[, [@name_in_db=] 'ім'я_користувача']

[, [@grpname=] 'ім'я_ролі']

Відобразити обліковий запис Windows NT в ім'я користувача дозволяє бережена процедура:

sp_grantdbaccess

[@login=] ‘ обліковий_запис’

[, [@name_in_db=]‘ ім'я_користувача’]

Користувач, який створює об'єкт в базі даних (таблицю, збережену процедуру, перегляд), стає його власником. Власник об'єкту (database object owner dbo) має всі права доступу до створеного їм об'єкту. Щоб користувач міг створити об'єкт, власник бази даних (dbo) повинен надати йому відповідні права. Повне ім'я створюваного об'єкту включає ім'я користувача, що створив його .

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

SQL Server дозволяє передавати права володіння від одного користувача іншому за допомогою процедури:

sp_changeobjectowner

[@objname=] ‘ ім'я_об'єкта’

[@newowner=] ‘ ім'я_власника’

Роль дозволяє об'єднати в одну групу користувачів, що виконують однакові функції.

В SQL Server реалізовано два види стандартних ролей: на рівні серверу і на рівні баз даних. При установці SQL Server створюються фіксовані ролі серверу (наприклад, sysadmin з правом виконання будь-яких функцій SQL-серверу) і фіксовані ролі бази даних (наприклад, db_owner з правом повного доступу до бази даних або db_accessadmin з правом додавання і видалення користувачів ). Серед фіксованих ролей бази даних існує роль public, яка має спеціальне призначення, оскільки її членами є всі користувачі, що мають доступ до бази даних.

Можна включити будь-який обліковий запис SQL Server (login) або обліковий запис Windows NT в будь-яку роль серверу.

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

В роль бази даних можна включити користувачів SQL Server, ролі SQL Server, користувачів Windows NT.

Різні дії по відношенню до ролі здійснюються за допомогою спеціальних процедур:

  • створення нової ролі:

sp_addrole

[@rolename=] 'ім'я_ролі'

[, [@ownername=] 'ім'я_власника']

  • додавання користувача до ролі:

sp_addrolemember

[@rolename=] 'ім'я_ролі'

[@membername=] 'ім'я_користувача'

  • видалення користувача з ролі:

sp_droprolemember

[@rolename=] 'ім'я_ролі'

[@membername=] 'ім'я_користувача'

  • видалення ролі:

sp_droprole

[@rolename=] 'ім'я_ролі'

Соседние файлы в папке лекции