共用方式為


DACL中的 ACE 順序

程式 嘗試存取安全性實體物件時,系統會在物件的 選擇性訪問控制清單 #DACL 找到允許或拒絕所要求存取的 ACE 之前,逐步執行 訪問控制專案(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 依適當順序新增。