Решение практических



бет52/55
Дата12.05.2023
өлшемі1,43 Mb.
#92531
түріРешение
1   ...   47   48   49   50   51   52   53   54   55

Инструкция DENY


Инструкция DENY запрещает пользователю выполнять указанные действия на указанных объектах. Иными словами, эта инструкция удаляет существующие разрешения для учетной записи пользователя, а также предотвращает получение разрешений пользователем посредством его членства в группе или роли, которое он может получить в будущем. Эта инструкция имеет следующий синтаксис:
DENY {ALL [PRIVILEGES] } | permission_list [ON [class::] securable] TO principal_list [CASCADE] [ AS principal ]
Все параметры инструкции DENY имеют точно такое же логическое значение, как и одноименные параметры инструкции GRANT. Инструкция DENY имеет дополнительный параметр CASCADE, в котором указывается, что разрешения, запрещенные пользователю A, будут также запрещены пользователям, которым он их предоставил. Если в инструкции DENY параметр CASCADE опущен, и при этом ранее были предоставлены разрешения для соответствующего объекта с использованием предложения WITH GRANT OPTION, исполнение инструкции DENY завершается ошибкой.
Инструкция DENY блокирует разрешения, полученные пользователем, группой или ролью посредством их членства в группе или роли. Это означает, что если член группы, которому запрещено разрешение, предоставленное для группы, то этот пользователь будет единственным из группы, кто не сможет использовать это разрешение. С другой стороны, если разрешение запрещено для всей группы, все члены этой группы не смогут пользоваться этим разрешением. [7]
Инструкцию GRANT можно рассматривать как положительную авторизацию пользователя, а инструкцию DENY – как отрицательную. Обычно инструкция DENY используется для запрещения разрешений, уже предоставленных для группы (или роли), отдельным членам этой группы.
Использование инструкции DENY показано в примерах ниже. В следующем примере мы запрещаем пользователю Vasya два предоставленных ранее разрешения:
USE SampleDb;

DENY CREATE TABLE, CREATE PROCEDURE


TO Vasya;
Инструкция DENY в примере отменяет для пользователя Vasya ранее предоставленные ему разрешения на создание таблиц и процедур. В примере ниже показана негативная авторизация для некоторых пользователей базы данных SampleDb:
USE SampleDb;

GRANT SELECT ON Project TO PUBLIC;


DENY SELECT ON Project TO Vasya;
Вначале предоставляется разрешение на выборку всех строк из таблицы Project всем пользователям базы данных SampleDb. После этого это разрешение отменяется для пользователя Vasya.


Достарыңызбен бөлісу:
1   ...   47   48   49   50   51   52   53   54   55




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет