IMetabaseAuditPolicy.FilterClass

Синтаксис

FilterClass(ClassID: Integer): Integer;

FilterClass[System.Int32]: System.Int32;

Параметры

ClassId. Числовой идентификатор класса объекта. Для указания класса объекта используйте значения перечислимого типа MetabaseObjectClass.

Описание

Свойство FilterClass определяет маску операций, для которых будет вестись аудит доступа.

Комментарии

Аудит доступа по указанным операциям будет вестись для всех объектов указанного класса. Аудит операций, включенных для классов, имеет больший приоритет, чем аудит операций, отключенных для конкретного объекта. Для настройки доступа аудита операций для конкретного объекта используется метод AddAce и свойство AccessMask.

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

Основные, дополнительные и специфические операции, доступные для определенных типов объектов, представлены в разделе «Протоколируемые операции».

Для разбора значения маски необходимо реализовать пользовательскую функцию, которая позволит сопоставить отдельные биты маски соответствующим значениям перечислений. Пример работы с маской доступа представлен в разделе «Работа с маской доступа».

Пример

Для выполнения примера добавьте системные сборки: Metabase, ForeSystem (для примера на Fore.NET).

Sub UserProc;
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    AuditPolicy: IMetabaseAuditPolicy;
    Mask: Integer;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    MS := MB.Security;
    
// Изменим аудит типа объектов «Ярлык»
    AuditPolicy := MS.Policy.AuditPolicy;
    AuditPolicy.FilterClass(MetabaseObjectClass.KE_CLASS_SHORTCUT_AUDIT) := MetabaseObjectPredefinedRights.Write;
    
// Сохраним изменения
    MS.Apply;
    
// Освободим лицензию
    Lic := Null;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params : StartParams);
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    AuditPolicy: IMetabaseAuditPolicy;
    Mask: Integer;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    MS := MB.Security;
    
// Изменим аудит типа объектов «Ярлык»
    AuditPolicy := MS.Policy.AuditPolicy;
    AuditPolicy.FilterClass[MetabaseObjectClass.KE_CLASS_SHORTCUT_AUDIT 
As Integer] := MetabaseObjectPredefinedRights.moprWrite As Integer;
    
// Сохраним изменения
    MS.Apply();
    
// Освободим лицензию
    Lic := Null;
End Sub;

После выполнения примера будет включен аудит типа объектов «Ярлык» только на изменение.

См. также:

IMetabaseAuditPolicy