
- •Контрольні запитання
- •Контрольні запитання
- •Які головні переваги реляційної моделі?
- •Які види ключів існують і навіщо вони потрібні?
- •Функціональна залежність
- •Найбільш простий вигляд оператора select
- •2. Використання секції where
- •2.1. Порівняння значення стовпчика із константою
- •2.2. Правила виконання однотабличних запитів на вибірку
- •3. Багатотабличні запити
- •3.1. Правила виконання багатотабличних запитів на вибірку
- •4. Використання псевдонімів таблиць
- •Секція order by – визначення порядку сортування
- •Групування записів
- •Правила виконання sql–запиту на вибірку (з врахуванням секції group by)
- •Кілька стовпчиків групування
- •8.3. Обмеження на запити з групуванням
- •8.4. Значення null в стовпчиках групування
- •Правила виконання sql–запиту на вибірку (з врахуванням секції having)
- •9.2. Обмеження на умову відбору груп
- •Значення null і умови відбору груп
- •Секція having без секції group by
- •Складні умови відбору у запитах на вибірку даних Використання логічних виразів
- •Порівняння
- •Перевірка на належність діапазону значень (between…and…)
- •Перевірка на належність множині значень (in)
- •Перевірка на рівність значенню null (is null)
- •Символ пропуску
- •2.1. Режими аутентифікації
- •2.2. Компоненти структури безпеки
- •2.3. Ролі сервера
- •2.4. Ролі баз даних
- •2.5. Ролі програми
- •2.6. Захист даних
- •Шифрування даних
- •Обмеження доступу до файлів sql server
- •3.1. Права доступу
- •3.2. Права на доступ до об'єктів баз даних
- •3.3. Заборона доступу
2.3. Ролі сервера
Роль — це могутній інструмент, доданий в SQL Server 7.0, щоб замінити групи, які використовувалися в попередніх версіях. Роль дозволяє об'єднувати користувачів, що виконують однакові функції, для спрощення адміністрування системи безпеки SQL Server.
У SQL Server реалізовано два види стандартних ролей: на рівні сервера і на рівні баз даних. При установці SQL Server 2000 створюється 9 фіксованих ролей сервера і 9 фіксованих ролей бази даних. Ці ролі не можна видалити, крім того, не можна модифікувати права їх доступу. Не можна надати користувачеві права, які мають фіксовані ролі сервера, іншим способом, окрім як включенням його в потрібну роль.
У попередніх версіях SQL Server для адміністрування сервера можна було використовувати тільки обліковий запис sa або його аналог. Інакше кажучи, можна було дати або всі права, або ніяких. Тепер в SQL Server ця проблема вирішена шляхом додавання ролей сервера (server role), які дозволяють надати операторам сервера тільки ті права, які адміністратор порахує можливим надати. Ролі сервера не мають відношення до адміністрування баз даних. Можна включити будь-який обліковий запис SQL Server (login) або обліковий запис Windows NT в будь-яку роль сервера.
Стандартні ролі сервера (fixed server role) і їх права приведені в табл. 1.
Таблиця 1
Вбудована роль сервера |
Призначення |
Sysadmin |
Може виконувати будь-які дії в SQL Server |
Serveradmin |
Виконує конфігурацію і виключення сервера |
Setupadmin |
Управляє зв'язаними серверами і процедурами, що автоматично запускаються при старті SQL Server |
Securityadmin |
Управляє обліковими записами і правами на створення бази даних, також може читати журнал помилок |
Processadmin |
Управляє процесами, запущеними в SQL Server |
Dbcreator |
Може створювати і модифікувати бази даних |
Diskadmin |
Управляє файлами SQL Server |
Bulkadmin(Bulk Insert administrators) |
Ця роль не існувала в SQL Server 7.0. Члени ролі Bulkadmin можуть вставляти дані з використанням засобів масивного копіювання, не маючи безпосереднього доступу до таблиць |
2.4. Ролі баз даних
Ролі бази даних (database role) дозволяють об'єднувати користувачів в одну адміністративну одиницю і працювати з нею як із звичайним користувачем. Можна призначити права доступу до об'єктів бази даних для конкретної ролі, при цьому всі члени цієї ролі автоматично наділяються однаковими правами. Замість того щоб надавати доступ кожному конкретному користувачеві, а згодом постійно стежити за змінами, можна просто включити користувача в потрібну роль. Якщо співробітник переходить в інший відділ, потрібно просто видалити його з однієї ролі і додати в іншу. Можна створити необхідну кількість ролей, які охоплювали б все різноманіття дій з базою даних. Пізніше, при зміні функцій членів однієї з ролей, досить змінити права доступу для цієї ролі, а не встановлювати нові права для кожного користувача.
У роль бази даних можна включати:
користувачів SQL Server;
ролі SQL Server
користувачів Windows NT;
групи Windows NT, яким заздалегідь наданий доступ до потрібної бази даних.
Засоби Enterprise Manager дозволяють додавати в роль бази даних тільки користувачів бази даних (user). Потрібно використовувати процедуру sp_addrolemember, що зберігається, щоб задіяти всі можливості SQL Server 2000:
sp_addrolemember [@ro1ename =] 'role', [@membername =] 'security_account'
Тут параметри означають наступне:
-
role— назва ролі SQL Server в поточній базі даних;
-
security_account — ім'я того об'єкту системи безпеки, який необхідно включити в роль. Як такий об'єкт можуть виступати як облікові записи SQL Server, так і користувачі і групи Windows NT, яким наданий доступ до сервера баз даних.
При створенні бази даних для неї визначаються стандартні ролі бази даних, які, так само як і стандартні ролі сервера, не можуть бути змінені або видалені. Стандартні ролі баз даних (fixed database role) і їх права приведені в табл. 2.
Таблиця 2
Вбудована роль баз даних |
Призначення |
db__owner |
Має всі права в базі даних |
db_accessadmin |
Може додавати або видаляти користувачів |
db_securityadmin |
Управляє всіма дозволами, об'єктами, ролями і членами ролей |
db_ddladmin |
Може виконувати будь-які команди DDL, окрім GRANT, DENY і REVOKE |
db_backupoperator |
Може виконувати команди DBCC, CHECKPOINT і BACKUP |
db_datareader |
Може проглядати будь-які дані в будь-якій таблиці БД |
db_datawriter |
Може модифікувати будь-які дані в будь-якій таблиці БД |
db_denydatareader |
Забороняється проглядати дані в будь-якій таблиці |
dbjjenydatawriter |
Забороняється модифікувати дані в будь-якій таблиці |
Окрім вказаних вище ролей існує ще одна — public. Ця роль має спеціальне призначення, оскільки її членами є всі користувачі, що мають доступ до бази даних. Не можна явно встановити членів цієї ролі, тому що всі користувачі і так автоматично є її членами. Цю роль слід використовувати для надання мінімального доступу користувачам, для яких права доступу до об'єктів не визначені явно. Якщо в базі даних дозволений користувач guest, то встановлений для publiс доступ матимуть всі користувачі, що дістали доступ до SQL Server. Роль public є у всіх базах даних, включаючи системні бази даних master, tempdb, msdb, model, і не може бути видалена.
Групи Windows NT можуть бути використані аналогічно ролям SQL Server. Можна створити один обліковий запис (login) для групи Windows NT і включати відповідних користувачів замість ролі в групу Windows NT. Вибір методу адміністрування залежить від вас.