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

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

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

<надання_права_виконання>::=

GRANT {ALL | <команда>[,...n]}

TO {ім'я_користувача | ім'я_групи | ім'я_ролі} [,...n]

Параметр <команда> є наступною конструкцією:

<команда>::=

{CREATE DATABASE | CREATE TABLE |

CREATE VIEW | CREATE DEFAULT |

CREATE RULE | CREATE PROCEDURE

| BACKUP DATABASE |

BACKUP LOG | ALL }

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

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

Виконання деяких дій не вимагає явного дозволу і доступне за умовчанням. Ці дії можуть бути виконані тільки членами ролей серверу або власниками об'єктів в базі даних.

Неявні права не надаються користувачу безпосередньо, він одержує їх лише при певних обставинах. Наприклад, користувач може стати власником об'єкту бази даних, тільки якщо сам створить об'єкт або якщо хтось інший передасть йому право володіння своїм об'єктом. Таким чином власник об'єкту автоматично одержить права на виконання будь-яких дій з об'єктом, у тому числі і на надання доступу до об'єкту іншим користувачам. Ці права ніде не указуються, виконувати будь-які дії дозволяє тільки факт володіння об'єктом.

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

Система безпеки SQL Server має ієрархічну структуру, і тому ролі бази даних включають облікові записи і групи Windows NT, користувачів і ролі SQL Server. Користувач же, у свою чергу, може брати участь в декількох ролях і одночасно має різні права доступу для різних ролей. Коли одна з ролей, в яких полягає користувач, має дозвіл на доступ до даних, він автоматично має аналогічні права. Проте, якщо виникає необхідність, користувачу можна заборонити доступ до даних або команд, тоді анулюються всі дозволи на доступ, одержані їм на будь-якому рівні ієрархії. При цьому гарантується, що доступ залишиться забороненим незалежно від дозволів, наданих на більш високому рівні.

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

<заборона_доступу>::=

DENY {ALL [PRIVILEGES]| | <привілей> [,...n]}

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

ON { ім'я_таблиці | ім'я_перегляду}

| ON {ім'я_таблиці | ім'я_перегляду } [ім'я_колонки [,...n])]

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

TO {ім'я_користувача | ім'я_групи | ім'я_ролі} [,...n]

[CASCADE ]

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

Для заборони виконання команд SQL застосовується оператор:

<заборона_виконання>::=

DENY {ALL | <команда>[,...n]}

TO {ім'я_користувача | ім'я_групи | ім'я_ролі} [,...n]

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

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

<неявне_відхилення_доступу>::=

REVOKE [GRANT OPTION FOR]

{ALL [ PRIVILEGES]| | <привілей> [,...n]}

{ [(ім'я_колонки [,...n])] ON { ім'я_таблиці | ім'я_перегляду} | ON {ім'я_таблиці | ім'я_перегляду }

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

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

TO | FROM {ім'я_користувача | ім'я_групи | ім'я_ролі}[,...n]

[CASCADE ]

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

Для неявного відхилення дозволу на виконання команд SQL використовується наступна команда:

<неявне_відхилення_дозволу>::=

REVOKE {ALL | <команда>[,...n]}

FROM {ім'я_користувача | ім'я_групи | ім'я_ролі}[,...n]

Значення параметрів аналогічне параметрам команд GRANT і DENY. Параметр GRANT OPTION FOR використовується, коли необхідно відкликати право, надане параметром WITH GRANT OPTION команди GRANT. Користувач зберігає дозвіл на доступ до об'єкту, але втрачає можливість надавати цей дозвіл іншим користувачам.

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