附錄 A:強制標籤的 SDDL
SDDL 是一種以字串格式表示存取權限的便利方式。 SDDL 會定義 ACE 字串和 SID 字串,以代表存取控制專案的欄位。 您可以使用 ConvertSecurityDescriptorToStringSecurityDescriptor 和 ConvertStringSecurityDescriptorToSecurityDescriptor 函式,將強制標籤 ACE 從二進位檔轉換為字串格式和返回。
SDDL 字串的定義位於標頭檔 sddl.h 中。
強制標籤 ACE 的 SDDL 字串定義如下:
#define SDDL_MANDATORY_LABEL TEXT("ML") // Integrity label
The SDDL strings for the mandatory label policy flags, which are in the access mask, are the following:
#define SDDL_NO_WRITE_UP TEXT("NW")
#define SDDL_NO_READ_UP TEXT("NR")
#define SDDL_NO_EXECUTE_UP TEXT("NX")
The SDDL SID strings for the integrity levels are the following:
#define SDDL_ML_LOW TEXT("LW")
#define SDDL_ML_MEDIUM TEXT("ME")
#define SDDL_ML_HIGH TEXT("HI")
#define SDDL_ML_SYSTEM TEXT("SI")
SACL 中指定低完整性層級NO_WRITE_UP原則之強制標籤 ACE 的 SDDL 範例如下:S: (ML;;西北;;;LW) 。
您可以使用 SDDL 字串搭配 ConvertStringSecurityDescriptorToSecurityDescriptor 函式,使用明確的強制標籤初始化安全性描述元,以在建立新的物件時做為安全性屬性參數,例如使用 CreateFile 的檔案。
注意
使用 ConvertSecurityDescriptorToStringSecurityDescriptor 時,請指定新的安全性資訊旗標LABEL_SECURITY_INFORMATION,以便將明確的強制標籤轉換成 SDDL 字串對等專案。 如果沒有LABEL_SECURITY_INFORMATION旗標,則強制標籤如果存在,就不會顯示在字串的 SACL 部分。