ACE 字符串

安全描述符定义语言(SDDL)在 安全描述符 字符串的 DACL 和 SACL 组件中使用 ACE 字符串。

安全描述符字符串格式 示例所示,安全描述符字符串中的每个 ACE 都括在括号中。 ACE 的字段按以下顺序排列,并用分号分隔(;))。

注意

条件 访问控制条目(ACE)的格式与其他 ACE 类型不同。 有关条件 ACE,请参阅 条件 ACE 的安全描述符定义语言

ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid;(resource_attribute)

领域

ace_type

一个字符串,指示 ACE_HEADER 结构的 AceType 成员的值。 ACE 类型字符串可以是 Sddl.h 中定义的以下字符串之一:

ACE 类型字符串 Sddl.h 中的常量 AceType 值
“A” SDDL_ACCESS_ALLOWED ACCESS_ALLOWED_ACE_TYPE
“D” SDDL_ACCESS_DENIED ACCESS_DENIED_ACE_TYPE
“OA” SDDL_OBJECT_ACCESS_ALLOWED ACCESS_ALLOWED_OBJECT_ACE_TYPE
“OD” SDDL_OBJECT_ACCESS_DENIED ACCESS_DENIED_OBJECT_ACE_TYPE
“AU” SDDL_AUDIT SYSTEM_AUDIT_ACE_TYPE
“AL” SDDL_ALARM SYSTEM_ALARM_ACE_TYPE
“OU” SDDL_OBJECT_AUDIT SYSTEM_AUDIT_OBJECT_ACE_TYPE
“OL” SDDL_OBJECT_ALARM SYSTEM_ALARM_OBJECT_ACE_TYPE
“ML” SDDL_MANDATORY_LABEL SYSTEM_MANDATORY_LABEL_ACE_TYPE Windows Server 2003: 不可用。
“XA” SDDL_CALLBACK_ACCESS_ALLOWED ACCESS_ALLOWED_CALLBACK_ACE_TYPE Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“XD” SDDL_CALLBACK_ACCESS_DENIED ACCESS_DENIED_CALLBACK_ACE_TYPE Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“RA” SDDL_RESOURCE_ATTRIBUTE SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“SP” SDDL_SCOPED_POLICY_ID SYSTEM_SCOPED_POLICY_ID_ACE_TYPE Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“XU” SDDL_CALLBACK_AUDIT SYSTEM_AUDIT_CALLBACK_ACE_TYPE Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“ZA” SDDL_CALLBACK_OBJECT_ACCESS_ALLOWED ACCESS_ALLOWED_CALLBACK_ACE_TYPE Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“TL” SDDL_PROCESS_TRUST_LABEL SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE Windows Server 2012、Windows 8、Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“FL” SDDL_ACCESS_FILTER SYSTEM_ACCESS_FILTER_ACE_TYPE Windows Server 2016, Windows 10 版本 1607、Windows 10 版本 1511、Windows 10 版本 1507、Windows Server 2012 R2、Windows 8.1、Windows Server 2012、Windows 8、Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。

注意

如果 ace_type ACCESS_ALLOWED_OBJECT_ACE_TYPE且 object_guidinherit_object_guid 均未指定 GUID,则 ConvertStringSecurityDescriptorToSecurityDescriptorace_type 转换为ACCESS_ALLOWED_ACE_TYPE。

ace_flags

一个字符串,指示 AceFlagsACE_HEADER 结构的成员的值。 ACE 标志字符串可以是 Sddl.h 中定义的以下字符串的串联:

ACE 标志字符串 Sddl.h 中的常量 AceFlag 值
“CI” SDDL_CONTAINER_INHERIT CONTAINER_INHERIT_ACE
“OI” SDDL_OBJECT_INHERIT OBJECT_INHERIT_ACE
“NP” SDDL_NO_PROPAGATE NO_PROPAGATE_INHERIT_ACE
“IO” SDDL_INHERIT_ONLY INHERIT_ONLY_ACE
“ID” SDDL_INHERITED INHERITED_ACE
“SA” SDDL_AUDIT_SUCCESS SUCCESSFUL_ACCESS_ACE_FLAG
“FA” SDDL_AUDIT_FAILURE FAILED_ACCESS_ACE_FLAG
“TP” SDDL_TRUST_PROTECTED_FILTER TRUST_PROTECTED_FILTER_ACE_FLAG Windows Server 2016、 Windows 10 版本 1607、Windows 10 版本 1511、Windows 10 版本 1507、Windows Server 2012 R2、Windows 8.1、Windows Server 2012、Windows 8、Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“CR” SDDL_CRITICAL CRITICAL_ACE_FLAG Windows Server 版本 1803、Windows 10 版本 1803、Windows Server 版本 1709、 Windows 10 版本 1709、Windows 10 版本 1703、Windows Server 2016、Windows 10 版本 1607、Windows 10 版本 1511、Windows 10 版本 1507、Windows Server 2012 R2、Windows 8.1、Windows Server 2012、Windows 8、Windows Server 2008 R2、Windows 7、 Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。

权限

一个字符串,指示 ACE 控制的 访问权限。 此字符串可以是访问权限的十六进制字符串表示形式,例如“0x7800003F”,也可以是以下字符串的串联。

通用访问权限

访问权限字符串 Sddl.h 中的常量 访问权限值
“GA” SDDL_GENERIC_ALL GENERIC_ALL
“GR” SDDL_GENERIC_READ GENERIC_READ
“GW” SDDL_GENERIC_WRITE GENERIC_WRITE
“GX” SDDL_GENERIC_EXECUTE GENERIC_EXECUTE

标准访问权限

访问权限字符串 Sddl.h 中的常量 访问权限值
“RC” SDDL_READ_CONTROL READ_CONTROL
“SD” SDDL_STANDARD_DELETE 删除
“WD” SDDL_WRITE_DAC WRITE_DAC
“WO” SDDL_WRITE_OWNER WRITE_OWNER

目录服务对象访问权限

访问权限字符串 Sddl.h 中的常量 访问权限值
“RP” SDDL_READ_PROPERTY ADS_RIGHT_DS_READ_PROP
“WP” SDDL_WRITE_PROPERTY ADS_RIGHT_DS_WRITE_PROP
“CC” SDDL_CREATE_CHILD ADS_RIGHT_DS_CREATE_CHILD
“DC” SDDL_DELETE_CHILD ADS_RIGHT_DS_DELETE_CHILD
“LC” SDDL_LIST_CHILDREN ADS_RIGHT_ACTRL_DS_LIST
“SW” SDDL_SELF_WRITE ADS_RIGHT_DS_SELF
“LO” SDDL_LIST_OBJECT ADS_RIGHT_DS_LIST_OBJECT
“DT” SDDL_DELETE_TREE ADS_RIGHT_DS_DELETE_TREE
“CR” SDDL_CONTROL_ACCESS ADS_RIGHT_DS_CONTROL_ACCESS

文件访问权限

访问权限字符串 Sddl.h 中的常量 访问权限值
“FA” SDDL_FILE_ALL FILE_GENERIC_ALL
“FR” SDDL_FILE_READ FILE_GENERIC_READ
“FW” SDDL_FILE_WRITE FILE_GENERIC_WRITE
“FX” SDDL_FILE_EXECUTE FILE_GENERIC_EXECUTE

注册表项访问权限

访问权限字符串 Sddl.h 中的常量 访问权限值
“KA” SDDL_KEY_ALL KEY_ALL_ACCESS
“KR” SDDL_KEY_READ KEY_READ
“KW” SDDL_KEY_WRITE KEY_WRITE
“KX” SDDL_KEY_EXECUTE KEY_EXECUTE

强制标签权限

访问权限字符串 Sddl.h 中的常量 访问权限值
“NR” SDDL_NO_READ_UP SYSTEM_MANDATORY_LABEL_NO_READ_UP Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“NW” SDDL_NO_WRITE_UP SYSTEM_MANDATORY_LABEL_NO_WRITE_UP Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。
“NX” SDDL_NO_EXECUTE_UP SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP Windows Server 2008、Windows Vista 和 Windows Server 2003: 不可用。

object_guid

GUID 的字符串表示形式,指示特定于对象的 ACE 结构的 ObjectType 成员的值,例如 ACCESS_ALLOWED_OBJECT_ACE。 GUID 字符串使用 UuidToString 函数返回的格式。

下表列出了一些常用的对象 GUID:

权限和 GUID 许可
铬;ab721a53-1e2f-11d0-9819-00aa0040529b 更改密码
铬;00299570-246d-11d0-a768-00aa006e0529 重置密码

inherit_object_guid

GUID 的字符串表示形式,指示特定于对象的 ACE 结构的 InheritedObjectType 成员的值。 GUID 字符串使用 UuidToString 格式。

account_sid

SID 字符串,用于标识 ACE 的 受托人

resource_attribute

[可选]resource_attribute仅适用于资源 ACE,并且是可选的。 一个指示数据类型的字符串。 资源属性 ace 数据类型可以是 Sddl.h 中定义的以下数据类型之一。

“#”符号与资源属性中的“0”同义词。 例如 D:AI(XA;OICI;FA;;;白矮星;(OctetStringType==#1#2#3##))等效于并解释为 D:AI(XA;OICI;FA;;;白矮星;(OctetStringType==#01020300))。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista 和 Windows Server 2003: 资源属性不可用。

资源属性 ace 数据类型字符串 Sddl.h 中的常量 数据类型
“TI” SDDL_INT 带符号整数
“TU” SDDL_UINT 无符号整数
“TS” SDDL_WSTRING 宽字符串
“TD” SDDL_SID SID
“TX” SDDL_BLOB 八进制字符串
“TB” SDDL_BOOLEAN 布尔

以下示例显示了允许访问的 ACE 的 ACE 字符串。 它不是特定于对象的 ACE,因此它在 object_guidinherit_object_guid 字段中没有信息。 ace_flags 字段也是空的,指示未设置任何 ACE 标志。

(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-1-0)

上面所示的 ACE 字符串描述了以下 ACE 信息。

AceType:       0x00 (ACCESS_ALLOWED_ACE_TYPE)
AceFlags:      0x00
Access Mask:   0x100e003f
                    READ_CONTROL
                    WRITE_DAC
                    WRITE_OWNER
                    GENERIC_ALL
                    Other access rights(0x0000003f)
Ace Sid      : (S-1-1-0)

以下示例显示了一个文件,该文件使用 Windows 和结构化查询语言(SQL)的资源声明进行分类,机密设置为“高业务影响”。

(RA;CI;;;;S-1-1-0; ("Project",TS,0,"Windows","SQL")) 
(RA;CI;;;;S-1-1-0; ("Secrecy",TU,0,3))

上面所示的 ACE 字符串描述了以下 ACE 信息。

AceType:       0x12 (SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE)
AceFlags:      0x1  (SDDL_CONTAINER_INHERIT)
Access Mask:   0x0
Ace Sid      : (S-1-1-0)
Resource Attributes: Project has the strings Windows and SQL, Secrecy has the unsigned int value of 3

有关详细信息,请参阅 安全描述符字符串格式SID 字符串。 有关条件 ACE,请参阅 条件 ACE 的安全描述符定义语言

另请参阅

[MS-DTYP]:安全描述符描述语言