Лекція 9. УПРАВЛІННЯ ДОСТУПОМ ДО БАЗИ ДАНИХ

Сайт: Навчально-інформаційний портал НУБіП України
Курс: Організація баз даних (КН+ІПЗ). Ч2☑️
Книга: Лекція 9. УПРАВЛІННЯ ДОСТУПОМ ДО БАЗИ ДАНИХ
Надруковано: Гість-користувач
Дата: середа, 11 березня 2026, 04:34

1. Користувачі бази даних

Розрізняють такі типи користувачів бази даних.

•           Адміністратор бази даних. Створює облікові записи користувачів, надає користувачеві привілеї, створює профілі для користувачів та, якщо це необхідно, видаляє їх.

•           Системний аналітик або системний адміністратор. Відповідає за безпеку усієї обчислювальної системи, для чого і створюються облікові записи та розроблюється система привілей доступу.

•           Кінцеві користувачі. Жоден користувач не може мати привілей доступу, які перевищують необхідні для його роботи. Головною причиною використання облікових записів користувачів та привілей є необхідність захисту даних. 

Об’єкти БД зв’язуються з іменами користувачів, і це має назву схеми. Схема – це набір об’єктів БД, які належать одному користувачеві БД. Цей користувач називається власником схеми.

2. Створення користувачів

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

1. Створення імені користувача БД SQL Server з визначенням пароля і бази даних для доступу. Це може бути реалізовано на мові SQL таким чином:

sp_addlogin [ @loginame = ] 'login'

    [ , [ @passwd = ] 'password' ]

    [ , [ @defdb = ] 'database' ]

    [ , [ @deflanguage = ] 'language' ]

    [ , [ @sid = ] sid ]

    [ , [ @encryptopt = ] 'encryption_option' ]

 В цьому синтаксису обов’язковим є лише ім’я користувача (login). Все інше приймається  (у разі їхньої відсутності) за замовченням. Пароль за замовченням порожній, а база даних – Master.

В середовищі Enterprise Manager створення облікового запису може бути реалізовано таким чином:

Security->Logins->New Login.

У вікні, що з’явиться, визначити ім’я користувача, базу даних та інше.

2. Добавлення користувача у відповідну БД. Цей крок може бути реалізований на мові SQL таким чином:

sp_adduser [ @loginame = ] 'login'

    [ , [ @name_in_db = ] 'user' ]

    [ , [ @grpname = ] 'group' ]

 В середовищі Enterprise Manager добавлення користувача може бути реалізовано таким чином:

вибрати у списку БД відповідну -> Users->New Database User.

У вікні, що з‘явиться, вибрати із списку ім’я користувача (login) та, у разі необхідності, групу, до якої бути належати цей користувач. За замовченням користувач належатиме до групи Public.

3. Привласнити користувачеві необхідних привілеїв доступу. На мові SQL це виконується за допомогою команди GRANT. В середовищі Enterprise Manager привілеї привласнюються під час добавлення користувача у відповідну БД.

Сеанси доступу до БД. Сеанс доступу  користувача до БД починається з моменту підключення і завершується після відключення від неї. На протязі часу, коли користувач залишається підключеним  до БД, він має можливість здійснювати з даними БД різні дії, наприклад, виконання запитів та транзакцій. Сеанси доступу користувачів завжди асоціюються з їхніми заліковими записами.  

На мові SQL сеанс доступу можна розпочати за допомогою команди CONNECT:

CONNECT TO {[server_name.]database_name} [AS connection_name] USER [login[.password] | $integrated] .

Приклад.

EXEC SQL CONNECT TO gizmo.pubs USER sa;

Завершити сеанс доступу можна як для одного користувача, так і для всіх одночасно:

DISCONNECT [connection_name | ALL | CURRENT]

Видалення облікових записів. Для цього використовується процедура

sp_dropuser [ @name_in_db = ] 'user'.


3. Забезпечення збереженості даних

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

У БД визначається ціла ієрархія користувачів, починаючи від проектувальника БД, адміністратора БД, програміста і до кінцевого користувача. Кожний користувач отримує у БД свій рівень доступу і цей рівень має містити мінімум привілей, які необхідні для рішення задач цього користувача.

В загальному підсумку управління користувачами – це процес створення та видалення облікових записів, контроль за діями користувачів в межах БД. Захист даних – це процес розподілення привілей для роботи у межах різних рівнів доступу, відміни привілей та прийняття мір по захисту різних даних, особливо, важливих файлів БД.

Привілеї. Привілеї – це рівні повноважень, які надаються користувачеві під час доступу до БД і її об’єктам, під час маніпулювання даними і виконання різних адміністративних функцій.

Те, що користувач може підключатися до БД, зовсім не означає, що користувач зможе отримати дані з цієї БД. Доступ до даних в межах БД дозволяється шляхом призначення привілеїв. Розрізняють два типи привілеїв.

1.         Привілеї доступу до системи.

2.         Привілеї доступу до даних.

Привілеї доступу до системи. Такі привілеї дають можливість користувачеві реалізовувати в межах БД адміністративні задачі, такі як створення та видалення БД, облікових записів користувачів, зміни стану об’єктів, зміни стану БД та інших подібних операцій. 

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

4. Команди SQL для управління доступом до даних

Призначення та відміна привілеїв і таким чином управління доступом до даних здійснюється за допомогою команд GRANT і REVOKE.

Команда GRANT використовується для призначення привілеїв як на рівні доступу до системи, так і на рівні доступу до об’єктів тим користувачам, які вже мають облікові записи в БД.

Для призначення привілеїв на рівні доступу до системи синтаксис команди такий.

GRANT { ALL | statement [ ,...n ] }

TO security_account [ ,...n ].

Аргументи означають таке.

•           ALL визначає, що надаються всі допустимі дозволи. У разі призначення привілеїв на рівні доступу до системи параметр ALL може використовуватися тільки для sysadmin ролі.

•           statement – це оператор, для якого надається дозвіл. Список операторів може включати такі:

         CREATE DATABASE

         CREATE DEFAULT

         CREATE FUNCTION

         CREATE PROCEDURE

         CREATE RULE

         CREATE TABLE

         CREATE VIEW

         BACKUP DATABASE

         BACKUP LOG

•           n означає, що одному користувачеві можуть надаватися декілька привілеїв, які розділяються комами.

•           TO  передує списку облікових записів.

•           n означає, що привілеї можуть надаватися одразу декільком користувачам, назви яких відокремлюються комами.

Для призначення привілеїв на рівні доступу до об’єктів синтаксис команди GRANT такий.

GRANT

    { ALL | permission [ ,...n ] }

    {

        [ ( column [ ,...n ] ) ] ON { table | view }

        | ON { table | view } [ ( column [ ,...n ] ) ]

        | ON { stored_procedure | extended_procedure }

        | ON { user_defined_function }

    }

TO security_account [ ,...n ]

[ WITH GRANT OPTION ]

[ AS { group | role } ]

Аргументи означають таке.

•           ALL визначає, що надаються всі допустимі дозволи. У разі призначення привілеїв на рівні доступу до об’єктів параметр ALL може використовуватися тільки для sysadmin та db_owner ролей.

•           Permission визначає привілеї. 

Стандарт ANSI визначає такі привілеї доступу до об’єктів.

SELECT – дозволяє доступ до вказаної таблиці;

INSERT [(name_column)] – дозволяє розмістити дані у вказаному стовпці або у всі стовпці вказаної таблиці;

DELETE  – дозволяє видаляти записи вказаної таблиці;

REFERENCES[(name_column)] – дозволяє посилатися в умовах цілісності на вказаний стовпець або на всі стовпці вказаної таблиці;

UPDATE [(name_column)] – дозволяє змінювати дані у вказаному стовпці або у всіх стовпцях вказаної таблиці.

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

•           WITH GRANT OPTION означає, що власник об’єкта наділяє правами користувача самому надавати привілеї.

•           AS { group | role } використовується для надання прав користувачеві, які не є членами групи або не мають вказаної ролі.

Команда REVOKE відміняє привілеї.

Для відміни привілеїв на рівні доступу до системи синтаксис команди такий.

REVOKE { ALL | statement [ ,...n ] }

FROM security_account [ ,...n ]

Для відміни привілеїв на рівні доступу до об’єктів синтаксис такий.

REVOKE [ GRANT OPTION FOR ]

    { ALL [ PRIVILEGES ] | permission [ ,...n ] }

    {

        [ ( column [ ,...n ] ) ] ON { table | view }

        | ON { table | view } [ ( column [ ,...n ] ) ]

        | ON { stored_procedure | extended_procedure }

        | ON { user_defined_function }

    }

{ TO | FROM }

    security_account [ ,...n ]

[ CASCADE ]

[ AS { group | role } ]


5. Спеціальні облікові записи

Під час інсталяції SQL Server 2000 майстер установки створює дві спеціальні облікові записи:

• sa (system administrator). Цей обліковий запис має абсолютні права щодо управління сервером. Програма установки включає цей запис у роль сервера sysadmin, надаючи йому таким чином ці права, та встановлює дня нього порожній пароль.

• BUILTIN\Administrators. За допомогою цього облікового запису члени групи Windows NT Administrators домена, в якому встановлений локальний SQL Server 2000, отримають права доступу до серверу. Обліковий запис BUILTIN\Administrators за замовченням включений до фіксованої ролі серверу, тобто адміністратори мережі за замовченням  мають право на управління сервером.

Спеціальні користувачі. У будь-якій БД автоматично створюються два користувача:

         dbo (database owner). Цей користувач БД є власником її. Власник БД має абсолютні права щодо управління нею. Користувача dbo неможливо видалити. За замовченням обліковий запис sa є відносно будь-якої БД користувачем dbo, що і дозволяє цьому обліковому запису отримати всі права на БД.

         guest. Всі права, що є у цього користувача, автоматично надаються всім обліковим записам, що створені на сервері, за умови, що цьому обліковому запису не наданий доступ до БД. Цей користувач може бути видалений, що рекомендується зробити з метою захисту інформації від несанкціонованого доступу.



Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0