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

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

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

При підключенні до SQL Server всі можливі дії користувачів визначаються правами (привілеями, дозволами), виданими їх обліковому запису, групі або ролі, в яких вони полягають.

Права можна розділити на три категорії:

  • права на доступ до об'єктів ;

  • права на виконання команд ;

  • неявні права.

Таблиця 17.1.

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

Для різних об'єктів застосовуються різні набори прав доступу до них:

  • SELECT, INSERT, UPDATE, DELETE, REFERENCES – для таблиці або уявлення;

  • SELECT, UPDATE – для конкретного стовпця таблиці або уявлення;

  • EXECUTE – для збережених процедур і функцій.

Право INSERT дозволяє вставляти нові рядки в таблицю або уявлення і видається тільки на рівні таблиці або уявлення; воно не може бути видано на рівні стовпця.

Право UPDATE видається або на рівні таблиці, що дозволяє змінювати в ній всі дані, або на рівні окремого стовпця, що дозволяє змінювати дані тільки в його межах.

Право DELETE дозволяє видаляти рядки з таблиці або уявлення, видається тільки на рівні таблиці або уявлення, але не може бути видано на рівні стовпця.

Право SELECT дозволяє вибірку даних і може видаватися як на рівні таблиці, так і на рівні окремого стовпця.

Право REFERENCES надає можливість посилатися на вказаний об'єкт. Стосовно таблиць дозволяє створювати зовнішні ключі, що посилаються на первинний ключ або унікальний стовпець цієї таблиці.

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

Для управління дозволом користувача на доступ до об'єктів бази даних використовується команда:

<надання_привілеїв>::=

GRANT { ALL [ PRIVILEGES] | <привілей>

[,...n]}

{ [( ім'я_колонки [,...n])]

ON { ім'я_таблиці |

ім'я_перегляду} |

ON {ім'я_таблиці |

ім'я_перегляду }

([ім'я_колонки

[,...n])]

| ON {ім'я_збереженої_процедури |

ім'я_зовнішньої_процедури}}

TO { ім'я_користувача | ім'я_групи |

ім'я_ролі} [,...n]

[WITH GRANT OPTION ]

[AS {ім'я_групи | ім'я_ролі }]

Параметр <привілей> є наступною конструкцією:

<привілей>::=

{SELECT | DELETE | INSERT |

UPDATE | EXECUTE | REFERENCES }

Параметр WITH GRANT OPTION допоможе користувачу, якому ви надаєте права, призначити права на доступ до об'єкту іншим користувачам. Його використовування вимагає особливої обережності, оскільки при цьому власник втрачає контроль над наданням прав на доступ іншим користувачам. Краще всього обмежити круг користувачів, що володіють можливістю управляти призначенням прав.

Необов'язковий параметр AS {ім'я_групи | ім'я_ролі} дозволяє вказати участь користувача в ролі, що забезпечує надання прав іншим користувачам.

Єдине право доступу, яке може бути надане для збереженої процедури, – право на її виконання ( EXECUTE ). Природно, окрім цього власник збереженої процедури може переглядати і змінювати її код.

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

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