Migrate to a Partially Contained DatabaseMigrate to a Partially Contained Database

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

このトピックでは、部分的包含データベース モデルへの変更を準備する方法を説明し、移行手順を示します。This topic discusses how to prepare to change to the partially contained database model and then provides the migration steps.

このトピックの内容:In this topic:

データベースを移行する準備Preparing to Migrate a Database

データベースを部分的包含データベース モデルに移行することを検討している場合は、次の点を確認してください。Review the following items when considering migrating a database to the partially contained database model.

  • 部分的包含データベース モデルを理解している。You should understand the partially contained database model. 詳細については、「 包含データベース」を参照してください。For more information, see Contained Databases.

  • 部分的包含データベースに固有のリスクを理解している。You should understand risks that are unique to partially contained databases. 詳細については、「 Security Best Practices with Contained Databases」を参照してください。For more information, see Security Best Practices with Contained Databases.

  • 包含データベースは、レプリケーション、変更データ キャプチャ、または変更の追跡をサポートしていない。Contained databases do not support replication, change data capture, or change tracking. データベースがこれらの機能を使用していないことを確認してください。Confirm the database does not use these features.

  • 部分的包含データベースに関して変更されているデータベース機能の一覧を確認する。Review the list of database features that are modified for partially contained databases. 詳細については、「変更された機能 (包含データベース)」を参照してください。For more information, see Modified Features (Contained Database).

  • sys.dm_db_uncontained_entitiess (Transact-SQL) クエリを実行し、データベース内の非包含オブジェクトまたは機能を検索します。Query sys.dm_db_uncontained_entities (Transact-SQL) to find uncontained objects or features in the database. 詳細については、以下を参照してください。For more information, see.

  • database_uncontained_usage XEvent を監視し、非包含機能がいつ使用されるかを確認する。Monitor the database_uncontained_usage XEvent to see when uncontained features are used.

包含データベースの有効化Enable Contained Databases

包含データベースを作成するためには、あらかじめ SQL Server データベース エンジンSQL Server Database Engineのインスタンスで包含データベースを有効にしておく必要があります。Contained databases must be enabled on the instance of SQL Server データベース エンジンSQL Server Database Engine, before contained databases can be created.

Transact SQL を使用して包含データベースを有効にするEnabling Contained Databases Using Transact-SQL

次の例では、 SQL Server データベース エンジンSQL Server Database Engineのインスタンスで包含データベースを有効にします。The following example enables contained databases on the instance of the SQL Server データベース エンジンSQL Server Database Engine.

sp_configure 'contained database authentication', 1;  
GO  
RECONFIGURE ;  
GO  

Management Studio を使用して包含データベースを有効にするEnabling Contained Databases Using Management Studio

次の例では、 SQL Server データベース エンジンSQL Server Database Engineのインスタンスで包含データベースを有効にします。The following example enables contained databases on the instance of the SQL Server データベース エンジンSQL Server Database Engine.

  1. オブジェクト エクスプローラーでサーバー名を右クリックし、 [プロパティ] をクリックします。In Object Explorer, right-click the server name, and then click Properties.

  2. [詳細設定] ページの [包含] セクションで、 [包含データベースを有効にする] オプションを Trueに設定します。On the Advanced page, in the Containment section, set the Enable Contained Databases option to True.

  3. [OK] をクリックします。Click OK.

部分的包含へのデータベースの変換Converting a Database to Partially Contained

データベースを包含データベースに変換するには、 CONTAINMENT オプションを変更します。A database is converted to a contained database by changing the CONTAINMENT option.

Transact-SQL を使用してデータベースを部分的包含に変換するConverting a Database to Partially Contained Using Transact-SQL

次の例では、 Accounting という名前のデータベースを部分的包含データベースに変換します。The following example converts a database named Accounting to a partially contained database.

USE [master]  
GO  
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL  
GO  

Management Studio を使用してデータベースを部分的包含に変換するConverting a Database to Partially contained Using Management Studio

次の例では、データベースを部分的包含データベースに変換します。The following example converts a database to a partially contained database.

  1. オブジェクト エクスプローラーで、 [データベース] を展開し、変換するデータベースを右クリックして、 [プロパティ] をクリックします。In Object Explorer, expand Databases, right-click the database to be converted, and then click Properties.

  2. [オプション] ページで、 [包含の種類] オプションを [部分] に変更します。On the Options page, change the Containment type option to Partial.

  3. [OK] をクリックします。Click OK.

包含データベース ユーザーへのユーザーの移行Migrating Users to Contained Database Users

次の例では、 SQL ServerSQL Server ログインに基づくすべてのユーザーを、パスワードを持つ包含データベース ユーザーに移行します。The following example migrates all users that are based on SQL ServerSQL Server logins to contained database users with passwords. 有効になっていないログインは除外します。The example excludes logins that are not enabled. この例は、包含データベースで実行する必要があります。The example must be executed in the contained database.

DECLARE @username sysname ;  
DECLARE user_cursor CURSOR  
    FOR   
        SELECT dp.name   
        FROM sys.database_principals AS dp  
        JOIN sys.server_principals AS sp   
        ON dp.sid = sp.sid  
        WHERE dp.authentication_type = 1 AND sp.is_disabled = 0;  
OPEN user_cursor  
FETCH NEXT FROM user_cursor INTO @username  
    WHILE @@FETCH_STATUS = 0  
    BEGIN  
        EXECUTE sp_migrate_user_to_contained   
        @username = @username,  
        @rename = N'keep_name',  
        @disablelogin = N'disable_login';  
    FETCH NEXT FROM user_cursor INTO @username  
    END  
CLOSE user_cursor ;  
DEALLOCATE user_cursor ;  

参照See Also

包含データベース Contained Databases
sp_migrate_user_to_contained (Transact-SQL) sp_migrate_user_to_contained (Transact-SQL)
sys.dm_db_uncontained_entities (Transact-SQL)sys.dm_db_uncontained_entities (Transact-SQL)