Топ питань
Часова шкала
Чат
Перспективи
Deny (SQL)
З Вікіпедії, вільної енциклопедії
Remove ads
DENY — оператор мови SQL, який не дає користувачам можливості виконувати дії. Це означає, що такий оператор видаляє існуючі повноваження у облікових записах користувачів або не дозволяє користувачам застосовувати повноваження від їх участі в групах, які можуть бути отримані в майбутньому.
Синтаксис команди DENY
DENY {ALL [PRIVILEGES]} | permission_list
[ON [class::] securable] TO principal_list
[CASCADE] [ AS principal ]
Всі опції оператора DENY мають таке ж логічне значення, що і опції з тими ж самими іменами в операторі GRANT, DENY має додаткову опцію CASCADE, яка вказує, що повноваження не будуть застосовуватися для користувача А і для будь-якого користувача, якому користувач А передасть ці повноваження . (Якщо опція CASCADE не зазначена в операторі DENY і відповідні повноваження до об'єкта задаються з WITH GRANT OPTION, то повертається помилка.)
Remove ads
Приклади використання оператора DENY
Оператор DENY забороняє користувачеві, групі або ролі отримувати доступ до повноважень, отриманим через їх участь в групі або ролі. Це означає, що якщо користувач належить групі (або ролі) і надані групі повноваження скасовуються для цього користувача, то цей користувач буде єдиним в групі, хто не зможе використовувати ці повноваження. З іншого боку, якщо повноваження скасовуються для всієї групи, то ці повноваження скасовуються для всіх членів цієї групи.
Приклад №1:
USE sample;
DENY CREATE TABLE, CREATE PROCEDURE
TO username
Інструкція DENY у прикладі №1 скасовує для користувача username раніше надані йому дозволи на створення таблиць і процедур.
Приклад №2:
USE sample;
GRANT SELECT ON project
TO PUBLIC;
DENY SELECT ON project
TO username1, username2
У прикладі №2 показана негативна авторизація для деяких користувачів бази даних sample.
Спочатку надається право на читання всіх рядків з таблиці project для всіх користувачів бази даних sample. Потім це право скасовується для двох користувачів: username1 і username2.
Remove ads
Примітки
- інструкцію GRANT можна розглядати як позитивну авторизацію користувача, а інструкцію
DENY- як негативну. Зазвичай інструкціяDENYвикористовується для заборони дозволів, вже наданих для групи (або ролі), окремим членам цієї групи. - Заборона дозволів на більш високому рівні моделі безпеки компонента Database Engine анулює дозволи, надані на більш низькому рівні. Наприклад, якщо дозвіл SELECT заборонено на рівні бази даних
sample(Приклад №1), і цей дозвіл передбачається для таблиціemployee, в результаті чого дозвіл SELECT буде заборонено для таблиціemployee, так само, як і для всіх інших таблиць цієї бази даних
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads