ISecurityDescriptor.GetDeniedAccess

Синтаксис

GetDeniedAccess(Subject: ISecuritySubject; DesiredAccess: Integer): Integer;

Параметры

Subject. Субъект безопасности, для которого проверяется наличие установленных запретов.

DesiredAccess. Желаемая маска доступа, относительно которой вычисляются установленные запреты.

Описание

Метод GetDeniedAccess для указанного субъекта безопасности проверяет наличие установленных запретов выполнения действий над текущим объектом.

Комментарии

Метод вычисляет запреты относительно желаемой маски доступа. Значение маски в параметре DesiredAccess является 4-x байтовым двоичным числом, приведённым к десятичному виду. Для формирования значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права и вести аудит доступа. Для определенных классов объектов доступны специфические операции. Для использования специфических операций, в зависимости от класса объекта, в маске можно использовать значения следующих перечислений:

Результатом выполнения метода будет маска запретов, также сформированная из элементов указанных выше перечислений.

Пример

Для выполнения примера в репозитории предполагается наличие куба с идентификатором STD_CUBE.

Добавьте ссылки на системные сборки: Metabase.

Sub UserProc;
Var
    Mb: IMetabase;
    Subject: ISecuritySubject;
    SDesc: ISecurityDescriptor;
Begin
    Mb := MetabaseClass.Active;
    Subject := Mb.LogonSession.User;
    SDesc := Mb.ItemById("STD_CUBE").SecurityDescriptor;
    Debug.WriteLine(SDesc.GetDeniedAccess(Subject, MetabaseObjectPredefinedRights.All));
End Sub UserProc;

При выполнении примера для текущего пользователя будут вычислены запреты, установленные на куб. Запреты вычисляются относительно максимально возможного доступа.

См. также:

ISecurityDescriptor

Связанные записи