SqlPackage 가져오기 매개 변수 및 속성

SqlPackage 가져오기 작업은 BACPAC 파일(.bacpac)의 스키마 및 테이블 데이터를 SQL Server 또는 Azure SQL Database의 비어 있거나 새로운 데이터베이스로 가져옵니다. 기존 데이터베이스로 가져오는 동안에는 대상 데이터베이스에 사용자 정의 스키마 개체가 있으면 안 됩니다. 또는 인증된 사용자에게 데이터베이스 생성 권한이 있는 경우 가져오기 작업을 통해 새 데이터베이스를 만들 수 있습니다.

참고 항목

Microsoft Entra ID는 Azure AD(Azure Active Directory)의 새 이름이지만 기존 환경의 중단을 방지하기 위해 Azure AD는 UI 필드, 연결 공급자, 오류 코드 및 cmdlet과 같은 일부 하드 코드된 요소에서 여전히 다시 기본. 이 문서에서는 두 이름을 서로 교환할 수 있습니다.

참고 항목

SqlPackage 가져오기는 200GB 미만의 데이터베이스에 가장 적합합니다. 더 큰 데이터베이스의 경우 이 문서에서 사용할 수 있는 속성과 SqlPackage 문제 해결의 팁을 사용하여 작업을 최적화할 수 있습니다.

명령줄 구문

SqlPackage는 명령줄에 지정된 매개 변수, 속성 및 SQLCMD 변수를 사용하여 지정된 작업을 시작합니다.

SqlPackage /Action:Import {parameters} {properties}

# example import to Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example import using short form parameter names
SqlPackage /a:Import /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
    /tp:"{your_password}" /sf:"C:\AdventureWorksLT.bacpac"

# example import using Microsoft Entra managed identity
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example import connecting using Microsoft Entra username and password
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example import connecting using Microsoft Entra universal authentication
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example import connecting using an access token associated with a service principal
$Account = Connect-AzAccount -ServicePrincipal -Tenant $Tenant -Credential $Credential
$AccessToken_Object = (Get-AzAccessToken -Account $Account -Resource "https://database.windows.net/")
$AccessToken = $AccessToken_Object.Token

SqlPackage /at:$AccessToken /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
SqlPackage /at:$($AccessToken_Object.Token) /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

가져오기 작업 매개 변수

매개 변수 약식 설명
/AccessToken: /에: {string} 대상 데이터베이스에 연결할 때 사용할 액세스 토큰 기반 인증 액세스 토큰을 지정합니다.
/Action: /a: 가져오기 수행할 작업을 지정합니다.
/AzureCloudConfig: /Acc: {string} Microsoft Entra ID에 연결하기 위한 사용자 지정 엔드포인트를 AzureActiveDirectoryAuthority={value}; 형식으로 지정합니다. DatabaseServicePrincipalName={value}" .
/Diagnostics: /D: {True|False} 진단 로깅이 콘솔로 출력되는지 여부를 지정합니다. 기본값은 False입니다.
/DiagnosticsFile: /Df: {string} 진단 로그를 저장할 파일을 지정합니다.
/MaxParallelism: /Mp: {int} 데이터베이스에 대해 실행 중인 동시 작업에 대한 병렬 처리 수준을 지정합니다. 기본값은 8입니다.
/ModelFilePath: /Mfp: {string} 원본 파일에서 model.xml을 재정의할 파일 경로를 지정합니다. 이 설정을 사용하면 배포 실패 및/또는 의도하지 않은 데이터 손실이 발생할 수 있습니다. 이 설정은 게시, 가져오기 또는 스크립트 생성과 관련된 문제를 해결할 때만 사용할 수 있습니다.
/Properties: /p: {PropertyName}={Value} 작업별 속성에 대한 이름 값 쌍을 지정합니다. {PropertyName}={Value}.
/Quiet: /Q: {True|False} 자세한 피드백을 무시할지 여부를 지정합니다. 기본값은 False입니다.
/SourceFile: /Sf: {string} 로컬 스토리지에서 작업 소스로 사용할 원본 파일을 지정합니다. 이 매개 변수를 사용하는 경우 다른 원본 매개 변수가 무효화됩니다.
/TargetConnectionString: /Tcs: {string} 대상 데이터베이스에 대한 유효한 SQL Server/Azure 연결 문자열을 지정합니다. 이 매개 변수를 지정한 경우 다른 모든 대상 매개 변수와 단독으로 연결 문자열이 사용됩니다.
/TargetDatabaseName: /tdn: {string} SqlPackage 동작의 대상인 데이터베이스의 이름에 대한 재정의를 지정합니다.
/TargetEncryptConnection: /Tec: {Optional|Mandatory|Strict|True|False} 대상 데이터베이스 연결에 대해 SQL 암호화를 사용할지 여부를 지정합니다. 기본값은 True입니다.
/TargetHostNameInCertificate: /thnic: {string} TLS를 사용하여 통신 계층을 암호화할 때 대상 SQL Server TLS/SSL 인증서의 유효성을 검사하는 데 사용되는 값을 지정합니다.
/TargetPassword: /Tp: {string} SQL Server 인증 시나리오에서 대상 데이터베이스에 액세스하는 데 사용할 암호를 정의합니다.
/TargetServerName: /Tsn: {string} 대상 데이터베이스를 호스팅하는 서버의 이름을 정의합니다.
/TargetTimeout: /Tt: {int} 대상 데이터베이스에 대한 연결을 설정하는 데 대한 제한 시간(초)을 지정합니다. Microsoft Entra ID의 경우 이 값이 30초보다 크거나 같은 것이 좋습니다.
/TargetTrustServerCertificate: /ttsc: {True|False} 대상 데이터베이스 연결을 암호화하고 신뢰의 유효성을 검증하기 위한 인증서 체인 검색을 건너뛰는 데 TLS를 사용할지 여부를 지정합니다. 기본값은 False입니다.
/TargetUser: /Tu: {string} SQL Server 인증 시나리오에서 대상 데이터베이스에 액세스하는 데 사용할 SQL Server 사용자를 정의합니다.
/TenantId: /Tid: {string} Microsoft Entra 테넌트 ID 또는 do기본 이름을 나타냅니다. 이 옵션은 게스트 또는 가져온 Microsoft Entra 사용자뿐만 아니라 outlook.com, hotmail.com 또는 live.com 같은 Microsoft 계정을 지원하는 데 필요합니다. 이 매개 변수를 생략하면 인증된 사용자가 이 AD의 네이티브 사용자라고 가정하면 Microsoft Entra ID의 기본 테넌트 ID가 사용됩니다. 그러나 이 경우 이 Microsoft Entra ID에 호스트된 게스트 또는 가져온 사용자 및/또는 Microsoft 계정은 지원되지 않으며 작업이 실패합니다.
자세한 내용은 SQL Database 및 Azure Synapse Analytics(MFA에 대한 SSMS 지원)를 사용한 유니버설 인증을 참조하세요.
/ThreadMaxStackSize: /tmss: {int} SqlPackage 작업을 실행하는 스레드의 최대 크기(MB)를 지정합니다. 이 옵션은 매우 큰 Transact-SQL 문을 구문 분석할 때 발생하는 스택 오버플로 예외가 발생하는 경우에만 사용해야 합니다.
/UniversalAuthentication: /Ua: {True|False} 범용 인증을 사용해야 하는지를 지정합니다. True로 설정되면 대화형 인증 프로토콜이 MFA를 지원하도록 활성화됩니다. 이 옵션은 사용자가 사용자 이름 및 암호 또는 통합 인증(Windows 자격 증명)을 입력하도록 요구하는 대화형 프로토콜을 사용하여 MFA 없이 Microsoft Entra 인증에 사용할 수도 있습니다. /UniversalAuthentication이 True로 설정된 경우 Source커넥트ionString(/scs)에서 Microsoft Entra 인증을 지정할 수 없습니다. /UniversalAuthentication이 False로 설정되면 Source커넥트ionString(/scs)에서 Microsoft Entra 인증을 지정해야 합니다.
자세한 내용은 SQL Database 및 Azure Synapse Analytics(MFA에 대한 SSMS 지원)를 사용한 유니버설 인증을 참조하세요.

가져오기 작업 관련 속성

속성 Description
/p: CommandTimeout=(INT32 '60') SQL Server에 대한 쿼리를 실행할 때 명령 시간 제한(초)을 지정합니다.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Azure SQL Database의 버전을 정의합니다. Azure SQL Database 서비스 계층을 참조하세요.
/p: DatabaseLockTimeout=(INT32 '60') SQLServer에 대해 쿼리를 실행할 때의 데이터베이스 잠금 시간 제한(초)를 지정합니다. 무기한 대기하려면 -1을 사용합니다.
/p: DatabaseMaximumSize=(INT32 '0') Azure SQL Database의 최대 크기(GB)를 정의합니다.
/p: DatabaseServiceObjective=(STRING) “P0” 또는 “S1”과 같은 Azure SQL Database의 성능 수준을 정의합니다.
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') true(기본값)이면 데이터를 가져오기 전에 인덱스를 사용하지 않도록 설정합니다. false인 경우 인덱스는 다시 빌드되지 않습니다.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') 데이터를 SQL Server로 가져오는 동안 인덱스를 다시 빌드할 때 병렬 처리를 사용하지 않습니다.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') 로그의 모든 개체 이름을 임의의 해시 값으로 바꿀지 여부를 지정합니다.
/p: ImportContributorArguments=(STRING) 배포 참가자에 대한 배포 참가자 인수를 지정합니다. 이 속성은 세미콜론으로 구분된 값 목록이어야 합니다.
/p: ImportContributorPaths=(STRING) 추가 가져오기 참가자를 로드할 경로를 지정합니다. 이 속성은 세미콜론으로 구분된 값 목록이어야 합니다.
/p: ImportContributors=(STRING) bacpac를 가져올 때 실행되어야 하는 배포 기여자를 지정합니다. 이 속성은 세미콜론으로 구분된 정규화된 빌드 참가자 이름 또는 ID의 목록이어야 합니다.
/p: LongRunningCommandTimeout=(INT32 '0') SQL Server에 대한 쿼리를 실행할 때 장기 명령 시간 제한(초)을 지정합니다. 무기한 대기하려면 0을 사용합니다.
/p: PreserveIdentityLastValues=(BOOLEAN 'False') 배포하는 동안 ID 열의 마지막 값을 유지해야 하는지 여부를 지정합니다.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') true이면 데이터를 SQL Server로 가져온 후 오프라인에서 인덱스를 다시 빌드합니다.
/p: Storage=({File|Memory}) 데이터베이스 모델을 생성할 때 요소의 저장 방법을 지정합니다. 성능상의 이유로 기본값은 InMemory입니다. 큰 데이터베이스의 경우 파일 지원 스토리지가 필요합니다.

다음 단계