次の方法で共有


セキュリティ識別子

セキュリティ識別子 (SID) は、トラスティを識別するために使用される可変長の一意の値です。 各アカウントには、Windows ドメイン コントローラーなどの機関によって発行され、セキュリティ データベースに格納された一意の SID があります。 ユーザーがログオンするたびに、システムはそのユーザーの SID をデータベースから取得し、そのユーザーの アクセス トークン に配置します。 システムは、アクセス トークン内の SID を使用して、以降のすべての Windows セキュリティとの対話でユーザーを識別します。 SID がユーザーまたはグループの一意識別子として使用されている場合、別のユーザーまたはグループを識別するために 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する 2 つの SID プレフィックス値が等しいかどうかをテストします。 SID プレフィックスは、最後のサブ認証値を除く SID 全体です。
EqualSid 2 つの SID の等価性をテストします。 等しいと見なされるためには、完全に一致する必要があります。
FreeSidする AllocateAndInitializeSid 関数を使用して、以前に割り当てられた SID を解放します。
GetLengthSidする SID の長さを取得します。
GetSidIdentifierAuthority SID の識別子機関へのポインターを取得します。
GetSidLengthRequired 指定した数のサブ認証を持つ SID を格納するために必要なバッファーのサイズを取得します。
GetSidSubAuthority SID 内の指定されたサブ認証へのポインターを取得します。
GetSidSubAuthorityCountする SID 内のサブ認証の数を取得します。
InitializeSid SID 構造体を初期化します。
IsValidSid リビジョン番号が既知の範囲内にあり、サブ認証の数が最大値より少ないことを確認して、SID の有効性をテストします。
LookupAccountName 指定したアカウント名に対応する SID を取得します。
LookupAccountSid 指定した SID に対応するアカウント名を取得します。