Лекція 9. УПРАВЛІННЯ ДОСТУПОМ ДО БАЗИ ДАНИХ
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 } ]
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання
Вирівнювання тексту
Ширина абзацу