데이터베이스를 DAC로 등록
적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance SQL 데이터베이스
데이터 계층 애플리케이션 등록 마법사 또는 Windows PowerShell 스크립트를 사용하여 기존 데이터베이스의 개체를 설명하는 DAC(데이터 계층 애플리케이션) 정의를 빌드하고 msdb
시스템 데이터베이스(Azure SQL Database의 master
)에 DAC 정의를 등록합니다.
DAC를 업그레이드하려면 다음 사용: 데이터 계층 애플리케이션 등록 마법사, PowerShell
시작하기 전에
등록 프로세스에서는 데이터베이스의 개체를 정의하는 DAC 정의를 만듭니다. DAC 정의와 DAC 인스턴스의 데이터베이스 조합입니다. DAC를 데이터베이스 엔진의 인스턴스에 DAC로 등록할 경우 등록된 DAC는 유틸리티 컬렉션 집합이 인스턴스에서 유틸리티 제어 지점으로 다음에 전송될 때 SQL Server 유틸리티에 통합됩니다. 그러면 DAC가 Management Studio 유틸리티 탐색기의 배포된 데이터 계층 애플리케이션 노드에 표시되고 배포된 데이터 계층 애플리케이션 세부 정보 페이지에 보고됩니다.
제한 사항
DAC 등록은 SQL Database 또는 SQL Server 2005(9.x) 서비스 팩 4(SP4) 이상의 데이터베이스에서만 수행할 수 있습니다. DAC가 데이터베이스에 이미 등록된 경우에는 DAC 등록을 수행할 수 없습니다. 예를 들어 데이터베이스가 DAC를 배포하는 방식으로 만들어진 경우 데이터 계층 애플리케이션 등록 마법사를 실행할 수 없습니다.
데이터베이스에 DAC에서 지원되지 않는 개체가 있거나 사용자가 포함된 경우 DAC를 등록할 수 없습니다. DAC에서 지원되는 개체 유형에 대한 자세한 내용은 SQL Server 개체 및 버전에 대한 DAC 지원을 참조하세요.
사용 권한
데이터베이스 엔진 인스턴스에 DAC를 등록하려면 적어도 ALTER ANY 로그인 및 데이터베이스 범위 VIEW DEFINITION 사용 권한, sys.sql_expression_dependencies
에 SELECT 사용 권한 및 dbcreator 고정 서버 역할의 구성원 자격이 필요합니다. sysadmin 고정 서버 역할의 구성원 또는 기본 제공 SQL Server 시스템 관리자 계정인 sa도 DAC를 등록할 수 있습니다. SQL Database에 로그인이 없는 DAC를 등록하려면 dbmanager 또는 serveradmin 역할의 구성원 자격이 필요합니다. SQL Database에 로그인이 있는 DAC를 등록하려면 loginmanager 또는 serveradmin 역할의 구성원 자격이 필요합니다.
데이터 계층 애플리케이션 등록 마법사 사용
마법사를 사용하여 DAC를 등록하려면
개체 탐색기에서 DAC로 등록할 데이터베이스가 포함된 인스턴스에 대한 노드를 펼칩니다.
데이터베이스 노드를 확장합니다.
등록할 데이터베이스를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 데이터 계층 애플리케이션으로 등록을 선택합니다.
마법사 대화 상자를 완료합니다.
소개 페이지
이 페이지에서는 데이터 계층 애플리케이션을 등록하는 단계를 설명합니다.
이 페이지를 다시 표시 안 함 - 앞으로 이 페이지가 표시되지 않도록 하려면 이 확인란을 클릭합니다.
다음 > - 속성 설정 페이지로 진행합니다.
취소 - DAC를 등록하지 않고 마법사를 종료합니다.
속성 설정 페이지
이 페이지를 사용하여 애플리케이션 이름 및 버전과 같은 DAC 수준 속성을 지정할 수 있습니다.
애플리케이션 이름. - DAC 정의를 식별하는 데 사용되는 이름을 지정하는 문자열로, 필드가 데이터베이스 이름으로 채워졌습니다.
버전: - DAC의 버전을 식별하는 숫자 값. DAC 버전은 Visual Studio에서 개발자가 작업 중인 DAC 버전을 식별하는 데 사용됩니다. DAC를 배포할 때 버전은 msdb
데이터베이스에 저장되며 나중에 SQL Server Management Studio의 데이터 계층 애플리케이션 노드에서 볼 수 있습니다.
설명. - 선택 사항. DAC의 용도를 설명하는 텍스트입니다. DAC를 배포할 때 설명은 msdb
데이터베이스에 저장되며 나중에 Management Studio의 데이터 계층 애플리케이션 노드에서 볼 수 있습니다.
< 이전 - 소개 페이지로 돌아갑니다.
다음 > - 데이터베이스의 개체로 DAC를 작성할 수 있는지 확인하고 유효성 검사 및 요약 페이지에 결과를 표시합니다.
취소 - DAC를 등록하지 않고 마법사를 종료합니다.
유효성 검사 및 요약 페이지
이 페이지를 사용하여 DAC를 등록할 때 마법사가 수행하는 작업을 검토할 수 있습니다. 이 페이지는 데이터베이스의 개체로 DAC를 작성할 수 있는지 확인할 때 세 가지 상태로 전환됩니다.
개체 검색
데이터베이스 및 서버 개체 검색 - 마법사가 데이터베이스 및 데이터베이스 엔진 인스턴스에서 필요한 모든 개체를 검색할 때 진행률 표시줄을 표시합니다.
< 이전 - 항목을 변경하려면 속성 설정 페이지로 돌아갑니다.
다음 > - DAC를 등록하고 DAC 등록 페이지에 결과를 표시합니다.
취소 - DAC를 등록하지 않고 마법사를 종료합니다.
개체 유효성 검사
SchemaName 확인 .. ObjectName . - 마법사가 검색된 개체의 종속성을 확인하고 DAC에 대한 모든 유효한 개체임을 확인하면서 진행률 표시줄을 표시합니다. SchemaName.ObjectName은 현재 확인 중인 개체를 나타냅니다.
< 이전 - 항목을 변경하려면 속성 설정 페이지로 돌아갑니다.
다음 > - DAC를 등록하고 DAC 등록 페이지에 결과를 표시합니다.
취소 - DAC를 등록하지 않고 마법사를 종료합니다.
요약
DAC를 등록하는 데 사용되는 설정은 다음과 같습니다. - DAC에 포함된 속성 및 개체의 보고서를 표시합니다.
보고서 저장 - 유효성 검사 보고서 1부를 HTML 파일로 저장하려면 이 단추를 선택합니다. 기본 폴더는 Windows 계정의 Documents 폴더에 있는 SQL Server Management Studio\DAC Packages 폴더입니다.
< 이전 - 항목을 변경하려면 속성 설정 페이지로 돌아갑니다.
다음 > - DAC를 등록하고 DAC 등록 페이지에 결과를 표시합니다.
취소 - DAC를 등록하지 않고 마법사를 종료합니다.
DAC 등록 페이지
이 페이지에서는 등록의 성공 또는 실패를 보고합니다.
DAC를 등록하는 중 - DAC를 등록하기 위해 수행한 각 동작의 성공 또는 실패를 보고합니다. 정보를 검토하여 각 작업의 성공 또는 실패를 확인합니다. 오류가 발생한 모든 작업에는 결과 열에 링크가 있습니다. 링크를 선택하여 해당 작업에 대한 오류 보고서를 확인합니다.
보고서 저장 - 등록 보고서를 HTML 파일로 저장하려면 이 단추를 선택합니다. 파일은 모든 동작에서 생성된 모든 오류를 비롯하여 각 동작의 상태를 보고합니다. 기본 폴더는 Windows 계정의 Documents 폴더에 있는 SQL Server Management Studio\DAC Packages 폴더입니다. 파일 이름의 형식은 <DACPackageName>_RegisterDACReport_yyyymmdd.html이며, 여기서 <DACPackageName>은 배포할 패키지의 이름이고 yyyy는 현재 연도, mm은 현재 월, dd는 현재 날짜입니다.
종료 - 마법사를 종료합니다.
PowerShell을 사용하여 DAC 등록
PowerShell 스크립트에서 Register() 메서드를 사용하여 데이터베이스를 DAC로 등록하려면
SMO Server 개체를 만든 후 이 개체를 DAC로 등록할 데이터베이스를 포함하는 인스턴스로 설정합니다.
데이터베이스의 이름을 지정하는 변수를 추가합니다.
DAC 이름, 버전 및 설명과 같은 DAC에 대한 메타데이터를 지정합니다.
위에서 지정한 정보를 사용하여 Register 메서드를 실행합니다.
예제(PowerShell)
다음 예제에서는 MyDB라는 데이터베이스를 DAC로 등록합니다.
## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .
## Specify the database to register as a DAC.
$dbname = "MyDB"
## Specify the DAC metadata.
$applicationname = "MyApplication"
$version = "1.0.0.0"
$description = "This DAC defines the database used by my application."
## Register the DAC.
$registerunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
$registerunit.Description = $description
$registerunit.Register()