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

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

Windows レベルのプリンシパル

  • Windows ドメイン ログイン

  • Windows ローカル ログイン

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

  • SQL Server ログイン

  • サーバー ロール

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

  • データベース ユーザー

  • データベース ロール

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

SQL Server sa ログイン

SQL Server sa ログインは、サーバー レベルのプリンシパルです。 このログインは、インスタンスのインストール時に既定で作成されます。 SQL Server 2005 以降では、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##

guest ユーザー

各データベースには、guest が含まれます。 データベースにはアクセスできるが、データベース内のユーザー アカウントは持っていないユーザーは、guest ユーザーに許可された権限を継承します。 guest ユーザーを削除することはできませんが、CONNECT 権限を取り消すことで無効にすることはできます。 CONNECT 権限を取り消すには、master または tempdb 以外のデータベース内で REVOKE CONNECT FROM GUEST を実行します。

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

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

関連タスク

SQL Server オンライン ブックのこのセクションの内容は次のとおりです。

関連項目

参照

sys.database_principals (Transact-SQL)

sys.server_principals (Transact-SQL)

sys.sql_logins (Transact-SQL)

sys.database_role_members (Transact-SQL)

サーバー レベルのロール

データベース レベルのロール

概念

SQL Server の保護