プリンシパル (データベース エンジン)

プリンシパルは、SQL Server リソースを要求できるエンティティです。SQL Server の承認モデルの他のコンポーネントと同様に、プリンシパルは階層内に配置できます。プリンシパルの効力のスコープは、プリンシパルの定義のスコープ (Windows、サーバー、データベース) と、プリンシパルが分割できないアイテムであるかコレクションであるかによって異なります。分割できないプリンシパルの例には Windows ログインがあり、コレクションであるプリンシパルの例には Windows グループがあります。各プリンシパルには、1 つのセキュリティ識別子 (SID) があります。

Windows レベルのプリンシパル

  • Windows ドメイン ログイン

  • Windows ローカル ログイン

SQL Server レベルのプリンシパル

  • SQL Server ログイン

データベースレベルのプリンシパル

  • データベース ユーザー

  • データベース ロール

  • アプリケーション ロール

SQL Server sa ログイン

SQL Serversa ログインは、サーバー レベルのプリンシパルです。このログインは、インスタンスのインストール時に既定で作成されます。SQL Server 2005 および SQL Server 2008 では、sa の既定のデータベースは master です。これは、以前のバージョンの SQL Server の動作から変更されています。

public データベース ロール

データベース ユーザーはすべて、public データベース ロールに属しています。セキュリティ保護可能なリソースに対する特定の権限が与えられていないか権限が拒否されたユーザーは、public がそのリソースに対して許可されている権限を継承します。

INFORMATION_SCHEMA と sys

各データベースには、カタログ ビューにユーザーとして表示される 2 つのエンティティ INFORMATION_SCHEMA および sys が含まれています。SQL Server はこれらを必要とします。これらのエンティティはプリンシパルではなく、変更も削除もできません。

証明書ベースの SQL Server ログイン

名前が 2 つの番号記号 (##) で囲まれたサーバー プリンシパルは、内部システムでのみ使用されます。SQL Server のインストール時に証明書から作成される以下のプリンシパルは、削除しないでください。

  • ##MS_SQLResourceSigningCertificate##

  • ##MS_SQLReplicationSigningCertificate##

  • ##MS_SQLAuthenticatorCertificate##

  • ##MS_AgentSigningCertificate##

  • ##MS_PolicyEventProcessingLogin##

  • ##MS_PolicySigningCertificate##

  • ##MS_PolicyTsqlExecutionLogin##

クライアントとデータベース サーバー

定義上、クライアントとデータベース サーバーはセキュリティ プリンシパルであり、セキュリティで保護できます。これらのエンティティは、安全なネットワーク接続が確立される前に相互に認証できます。SQL Server は、クライアントとネットワーク認証サービスとのやり取りを定義する Kerberos 認証プロトコルをサポートしています。

SQL Server における Kerberos サポートの実装の詳細については、「Kerberos 認証と SQL Server」を参照してください。