安全性識別元
安全性識別碼 (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 的帳戶名稱。 |