DACPAC 파일 압축 풀기
DAC(데이터 계층 애플리케이션)는 전체 데이터베이스 모델의 자체 포함 단위이며 DAC 패키지 또는 .dacpac
알려진 아티팩트에서 이식 가능합니다. 프로덕션 환경에 배포하기 전에 .dacpac
내용을 검토하고 기존 DAC를 업그레이드하기 전에 업그레이드 작업의 유효성을 검사하는 것이 좋습니다.
.dacpac
콘텐츠의 유효성 검사는 조직에서 개발되지 않은 패키지를 배포할 때 특히 중요합니다. 이 문서에서는 Windows, macOS 및 Linux용 .dacpac
데이터베이스 모델의 압축을 푸는 여러 가지 방법을 설명합니다.
경고
알 수 없거나 신뢰할 수 없는 원본에서 .dacpac
배포하지 않는 것이 좋습니다. 이러한 DAC에는 의도하지 않은 코드를 실행하거나 스키마를 수정하여 오류를 일으킬 수 있는 악성 코드가 포함될 수 있습니다. 알 수 없거나 신뢰할 수 없는 원본에서 DAC를 사용하기 전에 데이터베이스 엔진의 격리된 테스트 인스턴스에 배포하고 DAC의 압축을 풀고 저장 프로시저 또는 기타 사용자 정의 코드와 같은 코드를 검사합니다.
.dacpac
콘텐츠를 검사하는 옵션은 다음과 같습니다.
- Visual Studio에서 SQL 프로젝트로
.dacpac
가져오기 - SqlPackage 명령줄 유틸리티를 사용하여
.dacpac
추출 - XML 콘텐츠를 보기 위해 파일의 압축을 풉니다.
- 테스트 인스턴스에
.dacpac
배포
개체 정의를 보기 위해 데이터베이스에서 추출된 직후 .dacpac
압축을 풀면 속성 /p:ExtractTarget=File
SqlPackage에서 추출 사용하여 보다 효율적으로 수행할 수 있습니다. 결과는 지정된 원본 데이터베이스의 개체 정의를 포함하는 단일 .sql
파일을 직접 만듭니다.
Visual Studio에서 SQL 프로젝트로 DACPAC 가져오기
Visual Studio에서 SQL 프로젝트로 .dacpac
가져오면 .dacpac
내용이 .sql 파일로 변환되고 폴더로 구성됩니다. 가져오기 후에는 .dacpac
배포 후 스크립트 및 배포 전 스크립트가 솔루션 탐색기에 표시됩니다.
Visual Studio의 일부로 SQL Server Data Tools 설치하고 새 SQL 프로젝트를 만듭니다.
솔루션 탐색기에서 빈 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 가져오기를 선택한 다음, 데이터 계층 애플리케이션 패키지 에서가져옵니다.
DACPAC 압축을 해제하여 XML 내용 보기
.dacpac
파일의 압축을 풉니다. 그러면 원시 XML 내용이 텍스트 편집기에서 볼 수 있습니다.
.dacpac
내에서 특정 구성 요소를 찾는 경우 XML 내용을 검토하는 것이 정보에 액세스하는 빠른 방법이 될 수 있습니다.
.dacpac
파일의 파일 확장자를.zip
변경합니다.OS에서 제공하는 유틸리티를 사용하여 .zip 파일의 압축을 풉 명령줄에서 파일의 압축을 풀려면 다음을 수행합니다.
unzip AdventureWorks.dacpac
결과 콘텐츠에는
DacMetadata.xml
,Origin.xml
및model.xml
포함됩니다.
테스트 인스턴스에 DACPAC 배포
테스트 인스턴스에 .dacpac
배포하면 연결된 다양한 데이터베이스 도구에서 개체를 검색할 수 있는 데이터베이스에 .dacpac
내용이 게시됩니다.
Azure Data Studio를 사용하여 DACPAC 배포
Azure Data Studio 에서SQL Server dacpac 확장을 설치하세요.
원하는 인스턴스에 연결합니다. 서버 노드를 마우스 오른쪽 단추로 클릭하고 메뉴에서 데이터 계층 애플리케이션 마법사 선택합니다.
마법사에서 배포 옵션을 선택하고 대상 데이터베이스 옵션을 새 데이터베이스로 설정하세요.
배포 후 개체 탐색기에서 연결된 서버의 데이터베이스로 이동하여 데이터베이스 개체를 찾습니다.
SqlPackage를 사용하여 DACPAC 배포
SqlPackage설치합니다.
SqlPackage CLI를 사용하여
.dacpac
파일을 원하는 인스턴스에 게시합니다. 데이터베이스에.dacpac
을 게시하는 명령어 예시는 sqlPackage 게시 예제를 참조하세요.
DACPAC 배포 기능이 있는 기타 도구
Azure Data Studio 및 SqlPackage 외에도 데이터베이스에 .dacpac
배포하는 데 다른 많은 도구를 사용할 수 있습니다. 몇 가지 예는 다음과 같습니다.
- SQL Server Management Studio
- Visual Studio: SQL Server 데이터 도구
Unpack()
메서드 호출
Microsoft.SqlServer.DacFx .NET API는 .dacpac
폴더에 압축을 푸는 메서드를 제공하며, 이 메서드를 사용하여 .dacpac
폴더에 프로그래밍 방식으로 압축을 풀 수 있습니다. 다음 예제 .NET 애플리케이션은 두 개의 인수, 즉 .dacpac
파일의 경로와 출력 폴더의 경로를 사용하며, 그 결과 3개의 XML 파일로 변환된 .dacpac
내용과 모든 데이터베이스 개체가 포함된 단일 .sql 파일이 생성됩니다.
using Microsoft.SqlServer.Dac;
namespace DacUnpack
{
class Program
{
static void Main(string[] args)
{
var dacpacPath = args[0];
var outputPath = args[1];
if (!Directory.Exists(outputPath))
{
Directory.CreateDirectory(outputPath);
}
Console.WriteLine("Unpacking {0} to {1}", dacpacPath, outputPath);
using(DacPackage dacpac = DacPackage.Load(dacpacPath))
{
dacpac.Unpack(outputPath);
}
}
}
}
관련 콘텐츠
- DAC(데이터 계층 애플리케이션) 개요
- sqlPackage 게시 매개 변수, 속성 및 SQLCMD 변수
- Azure Data Studio에서 SQL Server dacpac 확장
- Visual Studio 용 SQL Server Data Tools (SSDT) 설치