共用方式為


DACL 中的 ACE 順序

進程嘗試存取安全性實體物件時,系統會在物件的任意存取控制清單中執行存取控制專案 (ACE) , (DACL) ,直到找到允許或拒絕要求存取的 ACE 為止。 DACL 允許使用者的存取權限可能會因 DACL 中的 ACE 順序而有所不同。 因此,Windows XP 作業系統會在安全性實體物件的 DACL 中定義 ACE 的慣用順序。 慣用的順序提供簡單的架構,可確保拒絕存取的 ACE 實際上會拒絕存取。 如需有關系統檢查存取權之演算法的詳細資訊,請參閱 DACLs 如何控制物件的存取權。

針對 Windows Server 2003 和 Windows XP,ACE 的適當順序會因引進物件特定 ACE 和自動繼承而複雜。

下列步驟描述慣用的順序:

  1. 所有明確的 ACE 都會放在群組中,再放置於任何繼承的 ACE 之前。
  2. 在明確 ACE 群組中,存取遭拒絕的 ACE 會放在允許存取的 ACE 之前。
  3. 繼承的 ACE 會依繼承的順序排列。 繼承自子物件的父代 ACE 會先出現,然後 ACE 繼承自父系,依此類傳至物件的樹狀結構。
  4. 針對每個繼承的 ACE 層級,在存取允許的 ACE 之前,會放置拒絕存取 ACE。

當然,ACL 中不需要所有 ACE 類型。

AddAccessAllowedAceExAddAccessAllowedObjectAce等函式會將 ACE 新增至 ACL 的結尾。 呼叫者必須負責確保 ACE 以適當的順序新增 ACE。