Інструкція grant (transact-sql)

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

Якщо об'єктом, що захищається є база даних, аргумент ALL відноситься до дозволами BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE і CREATE VIEW.

Якщо об'єктом, що захищається є скалярна функція, аргумент ALL відноситься до дозволами EXECUTE і REFERENCES.

Якщо об'єктом, що захищається є функція, яка повертає табличне значення, аргумент ALL відноситься до дозволами DELETE, INSERT, REFERENCES, SELECT і UPDATE.

Якщо захищається сутність є збереженої процедурою, аргумент ALL увазі дозвіл EXECUTE.

Якщо об'єктом, що захищається є таблиця, аргумент ALL відноситься до дозволами DELETE, INSERT, REFERENCES, SELECT і UPDATE.

Якщо об'єктом, що захищається є уявлення, аргумент ALL відноситься до дозволами DELETE, INSERT, REFERENCES, SELECT і UPDATE.

Включено для забезпечення сумісності з вимогами ISO. Не змінює поведінку параметра ALL.

Ім'я дозволу. Допустимі зіставлення дозволів об'єктів, що захищаються зазначені у пунктах, перерахованих нижче.

Вказує ім'я стовпця таблиці, на який надається дозвіл. Потрібні круглі дужки «()».

Вказує клас об'єкта, що захищається, для якого надається дозвіл. Необхідний кваліфікатор області «::».

Вказує, що захищається, на який надається дозвіл.

Ім'я учасника. Склад учасників, яким можна надавати дозволи, змінюється в залежності від об'єкта, що захищається. Допустимі поєднання зазначені у пунктах, перерахованих нижче.

Показує, що отримує дозволу буде також дана можливість надавати зазначений дозвіл іншим учасникам.

Задає учасника, від якого учасник, який виконує цей запит, успадковує право на надання дозволу.

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

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

Надання дозволу видаляє DENY або REVOKE для цього дозволу на даний об'єкт, що захищається. Якщо той же дозвіл заборонено для більш високої області дії, яка містить даний об'єкт, що захищається, то DENY має більш високий пріоритет. Але скасування дозволу, виданого в більш високій області дії, не отримує такого пріоритету.

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

Заборона (DENY) рівня таблиці має менший пріоритет, ніж дозвіл (GRANT) рівня стовпчика. Ця несумісність в ієрархії дозволів передбачена з метою гарантії забезпечення сумісності. В майбутньому випуску це буде усунуто.

Системна збережена процедура sp_helprotect повідомляє про дозволи на доступ до захищених об'єктів рівня бази даних.

Особа, яка надає дозвіл (або учасник, вказаний параметром AS), повинна бути маркована сам дозвіл, наданий за допомогою GRANT OPTION, або дозвіл вищого рівня, яке неявно включає надається дозвіл. Якщо використовується параметр AS, накладаються додаткові обмеження. Додаткові відомості див. У розділах, присвячених конкретним захищених об'єктів.

Власники об'єктів можуть надавати дозволи на об'єкти, якими вони володіють. Учасники, які мають дозвіл CONTROL на об'єкт, що захищається, можуть надавати дозвіл на цей об'єкт, що захищається.

Учасники, яким надано дозвіл CONTROL SERVER, такі як члени зумовленої ролі сервера sysadmin, можуть надавати будь-який дозвіл на будь-який об'єкт, що захищається сервера. Сторони, що подають дозвіл CONTROL на базу даних, такі як члени зумовленої ролі бази даних db_owner, можуть надавати будь-які дозволи на будь-який об'єкт, що захищається в базі даних. Учасники, яким надано дозвіл CONTROL на схему, можуть надавати будь-які дозволи на будь-які об'єкти, що містяться в цій схемі.

Схожі статті