부분적으로 포함된 데이터베이스로 마이그레이션
적용 대상: 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 데이터베이스 엔진 인스턴스에서 포함된 데이터베이스를 사용하도록 설정합니다.
개체 탐색기에서 서버 이름을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
고급 페이지 의 포함 섹션에서 포함된 데이터베이스 사용 옵션을 True로 설정합니다.
확인을 선택합니다.
데이터베이스를 부분적으로 포함된 데이터베이스로 변환
CONTAINMENT 옵션을 변경하여 데이터베이스가 포함된 데이터베이스로 변환됩니다.
Transact-SQL을 사용하여 데이터베이스를 부분적으로 포함된 데이터베이스로 변환
다음 예에서는 이름이 Accounting
인 데이터베이스를 부분적으로 포함된 데이터베이스로 변환합니다.
USE [master]
GO
ALTER DATABASE [Accounting] SET CONTAINMENT = PARTIAL
GO
Management Studio를 사용하여 데이터베이스를 부분적으로 포함된 데이터베이스로 변환
다음 예에서는 데이터베이스를 부분적으로 포함된 데이터베이스로 변환합니다.
개체 탐색기 창에서 데이터베이스,를 확장하고 변환할 데이터베이스를 마우스 오른쪽 단추로 클릭한 후 속성을 클릭합니다.
옵션 페이지에서 포함 유형 옵션을 부분으로 변경합니다.
확인을 선택합니다.
사용자를 포함된 데이터베이스 사용자로 마이그레이션
다음 예제에서는 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)