次の方法で共有


サーバー構成: 包含データベース認証

適用対象:SQL Server

contained database authentication オプションを使用して、SQL Server データベース エンジンのインスタンスで包含データベースを有効にします。

このサーバー オプションを使用すると、 contained database authenticationを制御できます。

  • インスタンスの contained database authentication がオフ (0) の場合、包含データベースを作成したり、データベース エンジンにアタッチしたりすることはできません。

  • インスタンスの contained database authentication がオン (1) の場合、包含データベースを作成したり、データベース エンジンにアタッチしたりできます。

包含データベースには、すべてのデータベース設定と、データベースを定義するために必要なメタデータが含まれており、データベースがインストールされているデータベース エンジンのインスタンスに対する構成上の依存関係がありません。 ユーザーは、データベース エンジン レベルでのログイン認証なしでデータベースに接続できます。

データベース エンジンからデータベースを分離すると、SQL Server の他のインスタンスにデータベースを簡単に移動できるようになります。 すべてのデータベース設定をデータベースに含めることによって、データベース所有者はデータベースのすべての構成設定を管理できるようになります。 包含データベースの詳細については、「 Contained Databases」をご覧ください。

Note

包含データベースは SQL Database と Azure Synapse Analytics に対して常に有効になっており、無効にすることはできません。

SQL Server のインスタンスに包含データベースがある場合は、RECONFIGURE WITH OVERRIDE ステートメントを使用してcontained database authentication設定を0に設定できます。 contained database authentication0 に設定すると、包含データベースの包含データベース認証が無効になります。

重要

包含データベースが有効になっている場合、 ALTER ANY USER 権限を持つデータベース ユーザー (db_ownerのメンバーやdb_accessadmin データベース ロールなど) は、データベースへのアクセス権を付与できます。これを行うことで、SQL Server のインスタンスへのアクセス権を付与できます。 つまり、サーバーへのアクセスの制御は、 sysadmin 固定サーバー ロールと securityadmin 固定サーバー ロールのメンバーに限定されなくなり、サーバー レベルのログイン CONTROL SERVER および ALTER ANY LOGIN アクセス許可が付与されます。

包含データベースを許可する前に、包含データベースに関連するリスクを理解する必要があります。 詳細については、「 Security Best Practices with Contained Databases」を参照してください。

次の例では、データベース エンジンのインスタンスで包含データベースを有効にします。

EXECUTE sp_configure 'contained database authentication', 1;
GO

RECONFIGURE;
GO