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

適用対象:SQL Server

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

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

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

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

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

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

注

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

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

重要

包含データベースが有効になっている場合、 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