Share via


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

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

항목 내용

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

  • 부분적으로 포함된 데이터베이스 사용

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

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

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

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

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

  • 부분적으로 포함된 데이터베이스에서만 발생할 수 있는 위험을 이해해야 합니다. 자세한 내용은 포함된 데이터베이스의 보안 모범 사례을 참조하십시오.

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

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

  • 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

SQL Server 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)

개념

포함된 데이터베이스