安全性識別元

安全性識別碼 (SID) 是用來識別信任項的可變長度唯一值。 每個帳戶都有由授權單位簽發的唯一 SID,例如 Windows 網域控制站,並儲存在安全性資料庫中。 每次使用者登入時,系統會從資料庫擷取該使用者的 SID,並將它放在該使用者的 存取權杖 中。 系統會使用存取權杖中的 SID,在與 Windows 安全性的所有後續互動中識別使用者。 當 SID 作為使用者或群組的唯一識別碼時,就無法再次使用它來識別其他使用者或群組。

Windows 安全性會在下列安全性元素中使用 SID:

除了指派給特定使用者和群組的唯一建立網域特定 SD 之外,還有 已知的 SID 可識別泛型群組和泛型使用者。 例如,已知 SID、Everyone 和 World 會識別包含所有使用者的群組。

大部分的應用程式都不需要使用 SID。 由於 已知 SID 的名稱可能會有所不同,因此您應該使用函式從預先定義的常數建置 SID,而不是使用已知 SID 的名稱。 例如,美國英文版的 Windows 作業系統有一個名為 「BUILTIN\Administrators」 的已知 SID,在國際版本的系統上可能有不同的名稱。 如需建置已知 SID 的範例,請參閱 在 C++ 的存取權杖中搜尋 SID

如果您需要使用 SID,請勿直接操作它們。 請改用下列函式。

函式 描述
AllocateAndInitializeSid 使用指定的子授權數目來配置和初始化 SID。
ConvertSidToStringSid 將 SID 轉換成適合顯示、儲存或傳輸的字串格式。
ConvertStringSidToSid 將字串格式 SID 轉換為有效的功能性 SID。
CopySid 將來源 SID 複製到緩衝區。
EqualPrefixSid 測試兩個 SID 前置詞值是否相等。 SID 前置詞是最後一個子授權值以外的整個 SID。
EqualSid 測試兩個 SID 是否相等。 它們必須完全相符,才能視為相等。
FreeSid 使用 AllocateAndInitializeSid 函式釋放先前配置的 SID。
GetLengthSid 擷取 SID 的長度。
GetSidIdentifierAuthority 擷取 SID 識別碼授權單位的指標。
GetSidLengthRequired 擷取儲存具有指定子授權數目之 SID 所需的緩衝區大小。
GetSidSubAuthority 擷取 SID 中指定子授權的指標。
GetSidSubAuthorityCount 擷取 SID 中的子授權數目。
InitializeSid 初始化 SID 結構。
IsValidSid 藉由確認修訂編號在已知範圍內,且子授權數目小於最大值,以測試 SID 的有效性。
LookupAccountName 擷取對應至指定帳戶名稱的 SID。
LookupAccountSid 擷取對應至指定 SID 的帳戶名稱。