부분적으로 포함된 데이터베이스로 마이그레이션Migrate to a Partially Contained Database

이 항목에서는 부분적으로 포함된 데이터베이스 모델 변경을 준비하는 방법에 대해 설명한 다음 마이그레이션 단계를 제공합니다.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. 자세한 내용은 Contained Databases을 참조하세요.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_entities(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  

SQL Server 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. 확인을 클릭합니다.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. 확인을 클릭합니다.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 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)