- •Лекція 17
- •План
- •Схема доступу до даних
- •На рівні серверу система безпеки оперує наступними поняттями:
- •Для створення користувача в середовищі MS SQL Server
- •Створення нового облікового запису
- •Асоціація облікового запису з користувачем
- •Відображення облікового запису в ім'я користувача
- •Передача прав володіння об'єктом
- •Дії по відношенню до ролі
- •Привілеї, або права, - дії, які користувач має право виконувати відносно таблиці бази
- •Надання привілеїв користувачам
- •Відміна наданих користувачам привілеїв
- •Категорії прав в середовищі SQL Server
- •Для різних об'єктів застосовуються різні набори прав доступу до
- •Право INSERT дозволяє вставляти нові рядки в таблицю або уявлення і видається тільки
- •Надання прав
- •Права на виконання команд SQL
- •Для заборони доступу до об'єктів
- •Для заборони виконання команд SQL
Дії по відношенню до ролі
створення нової ролі: sp_addrole [@rolename=] 'ім'я_ролі'
[, [@ownername=] 'ім'я_власника']
додавання користувача до ролі:
sp_addrolemember [@rolename=] 'ім'я_ролі'
[@membername=] 'ім'я_користувача'
видалення користувача з ролі:
sp_droprolemember [@rolename=] 'ім'я_ролі'
[@membername=] 'ім'я_користувача‘
видалення ролі: sp_droprole [@rolename=] 'ім'я_ролі'
Привілеї, або права, - дії, які користувач має право виконувати відносно таблиці бази даних або уявлення.
SELECT – право вибирати дані з таблиці;
INSERT – право вставляти в таблицю нові рядки;
UPDATE – право змінювати дані в таблиці;
DELETE – право видаляти рядки з таблиці;
REFERENCES – право посилатися на стовпці вказаної таблиці в описах вимог підтримки цілісності даних;
USAGE – право використовувати домени, перевірки і набори символів.
Надання привілеїв користувачам
<надання_привілеїв>::= GRANT {<привілей>[,...n]|
ALL PRIVILEGES} ON ім'я_об'єкта
TO {<ідентифікатор_корист увача>
[,...n]| PUBLIC}
[ WITH GRANT OPTION]
Параметр <привілей> є:
<привілей>::=
{SELECT | DELETE | INSERT
[(ім'я_колонки[,...n])]
| UPDATE [(ім'я_колонки [,...n])]}
| REFERENCES [(ім'я_колонки [,...n])] |
USAGE }
Відміна наданих користувачам привілеїв
<відміна_привілеїв>::= REVOKE[GRANT OPTION FOR]
{<привілей>[,...n]
| ALL PRIVILEGES} ON ім'я_об'єкта
FROM {<ідентифікатор_користувача> [,...n]| PUBLIC}
[RESTRICT | CASCADE]
Категорії прав в середовищі SQL Server
права на доступ до об'єктів ;
права на виконання команд ;
неявні права.
Для різних об'єктів застосовуються різні набори прав доступу до
нихSELECT, INSERT, UPDATE, DELETE, REFERENCES – для таблиці або уявлення;
SELECT, UPDATE – для конкретного стовпця таблиці або уявлення;
EXECUTE – для збережених процедур і функцій.
Право INSERT дозволяє вставляти нові рядки в таблицю або уявлення і видається тільки на рівні таблиці або уявлення; воно не може бути видано на рівні стовпця.
Право UPDATE видається або на рівні таблиці, що дозволяє змінювати в ній всі дані, або на рівні окремого стовпця, що дозволяє змінювати дані тільки в його межах.
Право DELETE дозволяє видаляти рядки з таблиці або уявлення, видається тільки на рівні таблиці або уявлення, але не може бути видано на рівні стовпця.
Право SELECT дозволяє вибірку даних і може видаватися як на рівні таблиці, так і на рівні окремого стовпця.
Право REFERENCES надає можливість посилатися на вказаний об'єкт. Стосовно таблиць дозволяє створювати зовнішні ключі, що посилаються на первинний ключ або унікальний стовпець цієї таблиці
Надання прав
<надання_привілеїв>::=
GRANT { ALL [ PRIVILEGES] | <привілей> [,...n]}
{ [( ім'я_колонки [,...n])]
ON { ім'я_таблиці | ім'я_перегляду} | ON {ім'я_таблиці | ім'я_перегляду } ([ім'я_колонки [,...n])]
|ON {ім'я_збереженої_процедури | ім'я_зовнішньої_процедури} }
TO { ім'я_користувача | ім'я_групи | ім'я_ролі} [,...n] [WITH GRANT OPTION ]
[AS {ім'я_групи | ім'я_ролі }]
Права на виконання команд SQL
<надання_права_виконан ня>::=
GRANT {ALL | <команда>[,...n]}
TO {ім'я_користувача | ім'я_групи | ім'я_ролі} [,...n]
<команда>::=
{CREATE DATABASE |
CREATE TABLE |
CREATE VIEW | CREATE DEFAULT |
CREATE RULE | CREATE PROCEDURE
| BACKUP DATABASE | BACKUP LOG | ALL }
