安全性標識碼
安全性識別碼 (SID) 是用來識別 信任的唯一長度值。 每個帳戶都有授權單位發行的唯一 SID,例如 Windows 域控制器,並儲存在安全性資料庫中。 每次使用者登入時,系統會從資料庫擷取該使用者的SID,並將它放在該使用者的 存取令牌中。 系統會使用存取令牌中的 SID,在與 Windows 安全性的所有後續互動中識別使用者。 當 SID 當做使用者或群組的唯一識別碼使用時,就無法再次用來識別其他使用者或群組。
Windows 安全性會在下列安全性元素中使用 SID:
除了指派給特定使用者和群組的唯一建立網域特定SID之外,還有 已知 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 的帳戶名稱。 |