ACE 字符串

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

安全描述符字符串格式 示例所示,安全描述符字符串中的每个 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 ,则 ConvertStringSecurityDescriptorToSecurityDescriptorToSecurityDescriptor 会将 ace_type 转换为ACCESS_ALLOWED_ACE_TYPE。

ace_flags

一个字符串,指示ACE_HEADER结构的 AceFlags 成员的值。 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 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 权限
CR;ab721a53-1e2f-11d0-9819-00aa0040529b 更改密码
CR;00299570-246d-11d0-a768-00aa006e0529 重置密码

inherit_object_guid

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

account_sid

标识 ACE 的受信人的SID 字符串

resource_attribute

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

“#”符号与资源属性中的“0”同义。 例如,D:AI (XA;OICI;FA;;;WD; (OctetStringType==#1#2#3#) ) 等效于 D:AI (XA;OICI;FA;;;;WD; (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 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]:安全描述符描述语言