適用対象: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 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