부분적으로 포함된 데이터베이스로 마이그레이션

적용 대상:SQL Server

이 항목에서는 부분적으로 포함된 데이터베이스 모델로 변경을 준비하는 방법을 설명한 다음 마이그레이션 단계를 제공합니다.

항목 내용

데이터베이스 마이그레이션 준비

데이터베이스를 부분적으로 포함된 데이터베이스 모델로 마이그레이션하는 것을 고려할 때 다음 항목을 검토합니다.

  • 부분적으로 포함된 데이터베이스 모델을 이해해야 합니다. 자세한 내용은 포함된 데이터베이스를 참조 하세요.

  • 부분적으로 포함된 데이터베이스에 고유한 위험을 이해해야 합니다. 자세한 내용은 Security Best Practices with Contained Databases를 참조하세요.

  • 포함된 데이터베이스는 복제, 변경 데이터 캡처 또는 변경 내용 추적 기능을 지원하지 않습니다. 데이터베이스에서 이러한 기능을 사용하지 않는지 확인합니다.

  • 부분적으로 포함된 데이터베이스에 대해 수정된 데이터베이스 기능 목록을 검토합니다. 자세한 내용은 수정된 기능(포함된 데이터베이스)을 참조하세요.

  • 쿼리 sys.dm_db_uncontained_entities(Transact-SQL) 를 사용하여 데이터베이스에서 연결되지 않은 개체 또는 기능을 찾습니다. 자세한 내용은 참조하세요.

  • database_uncontained_usage XEvent를 모니터링하여 관련 없는 기능이 사용되는 시기를 확인합니다.

포함된 데이터베이스 사용

포함된 데이터베이스를 만들려면 먼저 SQL Server 데이터베이스 엔진 인스턴스에서 포함된 데이터베이스를 사용하도록 설정해야 합니다.

Transact-SQL을 사용하여 포함된 데이터베이스 사용

다음 예제에서는 SQL Server 데이터베이스 엔진 인스턴스에서 포함된 데이터베이스를 사용하도록 설정합니다.

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

Management Studio를 사용하여 포함된 데이터베이스 사용

다음 예제에서는 SQL Server 데이터베이스 엔진 인스턴스에서 포함된 데이터베이스를 사용하도록 설정합니다.

  1. 개체 탐색기에서 서버 이름을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  2. 고급 페이지의 포함 섹션에서 포함된 데이터베이스 사용 옵션을 True설정합니다.

  3. 확인을 선택합니다.

데이터베이스를 부분적으로 포함된 데이터베이스로 변환

CONTAINMENT 옵션을 변경하여 데이터베이스가 포함된 데이터베이스로 변환됩니다.

Transact-SQL을 사용하여 데이터베이스를 부분적으로 포함된 데이터베이스로 변환

다음 예에서는 이름이 Accounting 인 데이터베이스를 부분적으로 포함된 데이터베이스로 변환합니다.

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

Management Studio를 사용하여 데이터베이스를 부분적으로 포함된 데이터베이스로 변환

다음 예제에서는 데이터베이스를 부분적으로 포함된 데이터베이스로 변환합니다.

  1. 개체 탐색기에서 데이터베이스를 확장하고 변환할 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  2. [옵션] 페이지에서 [포함 유형] 옵션을 [부분]으로 변경합니다.

  3. 확인을 선택합니다.

포함된 데이터베이스 사용자로 사용자 마이그레이션

다음 예제에서는 SQL Server 로그인을 기반으로 하는 모든 사용자를 암호가 포함된 데이터베이스 사용자로 마이그레이션합니다. 이 예제에서는 사용하도록 설정되지 않은 로그인을 제외합니다. 이 예제는 포함된 데이터베이스에서 실행해야 합니다.

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 ;  

참고 항목

포함된 데이터베이스
sp_migrate_user_to_contained(Transact-SQL)
sys.dm_db_uncontained_entities(Transact-SQL)