SID 组件

SID 值包括提供有关 SID 结构信息的组件,以及唯一标识受信人的组件。 SID 由以下组件组成:

  • SID 结构的修订级别
  • 一个 48 位标识符颁发机构值,用于标识颁发 SID 的颁发机构
  • 可变数量的子授权或 相对标识符 (RID) 值,这些值相对于颁发 SID 的颁发机构唯一标识受信人

标识符颁发机构值和子授权值的组合可确保没有两个 SID 是相同的,即使两个不同的 SID 颁发机构发出相同的 RID 值组合也是如此。 每个 SID 颁发机构仅颁发一次给定 RID。

SID 以二进制格式存储在 SID 结构中。 若要显示 SID,可以调用 ConvertSidToStringSid 函数将二进制 SID 转换为字符串格式。 若要将 SID 字符串转换回有效的功能 SID,请调用 ConvertStringSidToSid 函数。

这些函数对 SID 使用以下标准化字符串表示法,这使得可视化其组件更简单:

S-R-I-S...

在此表示法中,文本字符“S”将一系列数字标识为 SID, R 是修订级别, I 是标识符颁发机构值, S... 是一个或多个子授权值。

以下示例使用此表示法显示本地 Administrators 组的已知域相对 SID:

S-1-5-32-544

在此示例中,SID 具有以下组件。 括号中的常量是 Winnt.h 中定义的已知标识符颁发机构和 RID 值:

  • 修订级别为 1
  • 标识符颁发机构值为 5 (SECURITY_NT_AUTHORITY)
  • 第一个子授权值 32 (SECURITY_BUILTIN_DOMAIN_RID)
  • 第二个子授权值 544 (DOMAIN_ALIAS_RID_ADMINS)