ACL からの情報の取得
アクセス制御 リスト (ACL) からアクセス制御情報を取得するいくつかの関数が提供されています。 これには、ACL が特定の トラスティに対して付与または監査するアクセス権を決定するための関数が含まれます。 その他の関数を使用すると、ACL 内の アクセス制御エントリ (ACE) に関する情報を抽出できます。
GetExplicitEntriesFromAcl 関数は、ACL 内の ACE を記述するEXPLICIT_ACCESS構造体の配列を取得します。 これは、ある ACL から別の ACL に ACE 情報をコピーする場合に便利です。 たとえば、 GetExplicitEntriesFromAcl を呼び出して 1 つの ACL の ACE に関する情報を取得した後、返された EXPLICIT_ACCESS 構造体を SetEntriesInAcl 関数の呼び出しに渡して、新しい ACL に同等の ACE を作成できます。
GetEffectiveRightsFromAcl 関数を使用すると、DACL が指定されたトラスティに付与する有効なアクセス権を決定できます。 トラスティの有効なアクセス権は、DACL がトラスティまたはトラスティがメンバーである任意のグループに付与するアクセス権です。 GetEffectiveRightsFromAcl は、指定された DACL 内のすべてのアクセスが許可され、アクセスが拒否された ACE をチェックします。
次の手順を使用して、オブジェクトに対するトラスティのアクセス権を決定します
- GetSecurityInfo または GetNamedSecurityInfo 関数を呼び出して、オブジェクトの DACL へのポインターを取得します。
- GetEffectiveRightsFromAcl 関数を呼び出して、DACL が指定されたトラスティに付与するアクセス権を取得します。
GetAuditedPermissionsFromAcl 関数を使用すると、SACL をチェックして、指定されたトラスティまたはトラスティがメンバーである任意のグループに対して監査されたアクセス権を決定できます。 監査権限は、システムがセキュリティ イベント ログに監査レコードを生成する原因となるアクセス試行の種類を示します。 関数は 2 つの アクセス マスクを返します。1 つはアクセス試行の失敗を監視するアクセス権を含み、もう 1 つはアクセスの成功を監視するアクセス権を含みます。 GetAuditedPermissionsFromAcl は、SACL 内のすべてのシステム監査 ACE をチェックします。