Bagikan melalui


Parameter dan properti Ekstrak SqlPackage

Tindakan Ekstrak SqlPackage membuat skema database yang tersambung dalam file DACPAC (.dacpac). Secara default, data tidak disertakan dalam file .dacpac. Untuk menyertakan data, gunakan tindakan Ekspor atau gunakan properti Ekstrak ExtractAllTableData/TableData.

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Sintaks baris perintah

SqlPackage memulai tindakan yang ditentukan menggunakan parameter, properti, dan variabel SQLCMD yang ditentukan pada baris perintah.

SqlPackage /Action:Extract {parameters} {properties}

Catatan

Ketika database dengan kredensial kata sandi (misalnya, pengguna autentikasi SQL) diekstrak, kata sandi diganti dengan kata sandi yang berbeda dari kompleksitas yang sesuai. Pengguna SqlPackage atau DacFx harus mengubah kata sandi setelah dacpac diterbitkan.

Contoh

# example extract to create a schema-only .dacpac file connecting using SQL authentication
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /p:ExtractAllTableData=false /p:VerifyExtraction=true \
    /SourceServerName:{serverFQDN} /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password}

# example extract to create a .sql file containing the schema definition of the database
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /SourceServerName:{serverFQDN} \
    /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password} /p:ExtractTarget=File

# example extract to create a .dacpac file with data connecting using SQL authentication
SqlPackage /Action:Extract /TargetFile:{filename}.dacpac /DiagnosticsFile:{logFile}.log /p:ExtractAllTableData=true /p:VerifyExtraction=true \
    /SourceServerName:{serverFQDN} /SourceDatabaseName:{databaseName} /SourceUser:{username} /SourcePassword:{password}


# example extract to create a schema-only .dacpac file connecting using Microsoft Entra managed identity
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"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 extract to create a schema-only .dacpac file connecting using Microsoft Entra username and password
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"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 extract to create a schema-only .dacpac file connecting using Microsoft Entra universal authentication
SqlPackage /Action:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example extract to create a schema-only .dacpac file 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:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"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:Extract /TargetFile:"C:\AdventureWorksLT.dacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parameter untuk tindakan Ekstrak

Parameter Formulir Pendek Nilai Deskripsi
/AccessToken: /Di: {string} Menentukan token akses autentikasi berbasis token yang akan digunakan saat menyambungkan ke database target.
/Tindakan: /J: Ekstrak Menentukan tindakan yang akan dilakukan.
/AzureCloudConfig: /Acc: {string} Menentukan titik akhir kustom untuk menyambungkan ke ID Microsoft Entra dalam format: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" .
/Diagnostik: /D: {True|False} Menentukan apakah pembuatan log diagnostik adalah output ke konsol. Default ke False.
/DiagnosticsFile: /Df: {string} Menentukan file untuk menyimpan log diagnostik.
/MaxParallelism: /Mp: {int} Menentukan tingkat paralelisme untuk operasi bersamaan yang berjalan terhadap database. Nilai default adalah 8.
/OverwriteFiles: /of: {True|False} Menentukan apakah SqlPackage harus menimpa file yang ada. Menentukan false menyebabkan SqlPackage membatalkan tindakan jika file yang ada ditemukan. Nilai default adalah True.
/Properti: /P: {PropertyName}={Value} Menentukan pasangan nilai nama untuk properti khusus tindakan; {PropertyName}={Value}.
/Tenang: /T: {True|False} Menentukan apakah umpan balik terperinci ditekan. Default ke False.
/Source Koneksi ionString: /Scs: {string} Menentukan string koneksi SQL Server/Azure yang valid ke database sumber. Jika parameter ini ditentukan, parameter ini akan digunakan secara eksklusif dari semua parameter sumber lainnya.
/SourceDatabaseName: /Sdn: {string} Menentukan nama database sumber.
/SourceEncrypt Koneksi ion: /Sec: {Opsional|Wajib|Ketat|Benar|False} Menentukan apakah enkripsi SQL harus digunakan untuk koneksi database sumber. Nilai default adalah True.
/SourceHostNameInCertificate: /shnic: {string} Menentukan nilai yang digunakan untuk memvalidasi sertifikat TLS/SSL SQL Server sumber saat lapisan komunikasi dienkripsi dengan menggunakan TLS.
/SourcePassword: /Sp: {string} Untuk skenario SQL Server Auth, menentukan kata sandi yang akan digunakan untuk mengakses database sumber.
/SourceServerName: /Ssn: {string} Menentukan nama server yang menghosting database sumber.
/SourceTimeout: /St: {int} Menentukan batas waktu untuk membuat koneksi ke database sumber dalam hitungan detik.
/SourceTrustServerCertificate: /stsc: {True|False} Menentukan apakah akan menggunakan TLS untuk mengenkripsi koneksi database sumber dan melewati rantai sertifikat untuk memvalidasi kepercayaan. Nilai defaultnya adalah Salah.
/SourceUser: /Su: {string} Untuk skenario SQL Server Auth, menentukan pengguna SQL Server yang akan digunakan untuk mengakses database sumber.
/TargetFile: /Tf: {string} Menentukan file target (yaitu, file .dacpac) di penyimpanan lokal untuk digunakan sebagai target tindakan, bukan database. Jika parameter ini digunakan, tidak ada parameter target lain yang valid. Parameter ini tidak akan valid untuk tindakan yang hanya mendukung target database.
/TenantId: /tid: {string} Mewakili ID penyewa Atau nama domain Microsoft Entra. Opsi ini diperlukan untuk mendukung pengguna Microsoft Entra tamu atau yang diimpor serta akun Microsoft seperti outlook.com, hotmail.com, atau live.com. Jika parameter ini dihilangkan, ID penyewa default untuk ID Microsoft Entra akan digunakan, dengan asumsi bahwa pengguna yang diautentikasi adalah pengguna asli untuk penyewa ini. Namun, dalam hal ini setiap tamu atau pengguna yang diimpor dan/atau akun Microsoft yang dihosting di ID Microsoft Entra ini tidak didukung dan operasi akan gagal.
Untuk informasi selengkapnya, lihat Autentikasi universal dengan SQL Database dan Azure Synapse Analytics (dukungan SSMS untuk MFA).
/ThreadMaxStackSize: /tmss: {int} Menentukan ukuran maksimum dalam megabyte untuk utas yang menjalankan tindakan SqlPackage. Opsi ini hanya boleh digunakan saat menemukan pengecualian luapan tumpukan yang terjadi saat mengurai pernyataan Transact-SQL yang sangat besar.
/UniversalAuthentication: /Ua: {True|False} Menentukan apakah autentikasi universal harus digunakan. Ketika diatur ke True, protokol autentikasi interaktif diaktifkan mendukung MFA. Opsi ini juga dapat digunakan untuk autentikasi Microsoft Entra tanpa MFA, menggunakan protokol interaktif yang mengharuskan pengguna memasukkan nama pengguna dan kata sandi mereka atau autentikasi terintegrasi (kredensial Windows). Ketika /UniversalAuthentication diatur ke True, tidak ada autentikasi Microsoft Entra yang dapat ditentukan dalam Source Koneksi ionString (/scs). Ketika /UniversalAuthentication diatur ke False, autentikasi Microsoft Entra harus ditentukan dalam Source Koneksi ionString (/scs).
Untuk informasi selengkapnya, lihat Autentikasi universal dengan SQL Database dan Azure Synapse Analytics (dukungan SSMS untuk MFA).

Properti khusus untuk tindakan Ekstrak

Properti Nilai Deskripsi
/P: AzureSharedAccessSignatureToken=(STRING) Token tanda tangan akses bersama (SAS) Azure. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data dalam file Parquet.
/P: AzureStorageBlobEndpoint=(STRING) Titik akhir Azure Blob Storage. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data dalam file Parquet.
/P: AzureStorageContainer=(STRING) Kontainer Azure Blob Storage. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data dalam file Parquet.
/P: AzureStorageKey=(STRING) Kunci akun penyimpanan Azure. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data dalam file Parquet.
/P: AzureStorageRootPath=(STRING) Jalur akar penyimpanan dalam kontainer. Tanpa properti ini, jalur default ke servername/databasename/timestamp/. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data dalam file Parquet.
/P: CommandTimeout=(INT32 '60') Menentukan batas waktu perintah dalam detik saat menjalankan kueri terhadap SQL Server.
/P: CompressionOption=({Normal|Maksimum|Cepat|SuperFast|NotCompressed} 'Normal') Menentukan jenis pemadatan.
/P: DacApplicationDescription=(STRING) Menentukan deskripsi Aplikasi yang akan disimpan dalam metadata DACPAC.
/P: DacApplicationName=(STRING) Menentukan Nama aplikasi yang akan disimpan dalam metadata DACPAC. Nilai defaultnya adalah nama database.
/P: DacMajorVersion=(INT32 '1') Menentukan versi utama yang akan disimpan dalam metadata DACPAC.
/P: DacMinorVersion=(INT32 '0') Menentukan versi minor yang akan disimpan dalam metadata DACPAC.
/P: DatabaseLockTimeout=(INT32 '60') Menentukan batas waktu penguncian database dalam hitungan detik saat menjalankan kueri terhadap SQLServer. Gunakan -1 untuk menunggu tanpa batas waktu.
/P: ExtractAllTableData=(BOOLEAN 'False') Menunjukkan apakah data dari semua tabel pengguna diekstrak. Jika 'true', data dari semua tabel pengguna diekstrak, dan Anda tidak dapat menentukan tabel pengguna individual untuk mengekstrak data. Jika 'false', tentukan satu atau beberapa tabel pengguna untuk mengekstrak data.
/P: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Jika true, hanya ekstrak objek cakupan aplikasi untuk sumber yang ditentukan. Jika false, ekstrak semua objek untuk sumber yang ditentukan.
/P: ExtractReferencedServerScopedElements=(BOOLEAN 'True') Jika true, ekstrak objek masuk, audit server, dan kredensial yang direferensikan oleh objek database sumber.
/P: ExtractTarget=({DacPac|File|Datar|ObjectType|Skema|SchemaObjectType} 'DacPac') Menentukan format output alternatif dari skema database, defaultnya adalah 'DacPac' untuk menghasilkan .dacpac satu file. Opsi tambahan menghasilkan satu atau beberapa .sql file yang diatur oleh 'SchemaObjectType' (file dalam folder untuk setiap skema dan jenis objek), 'Skema' (file dalam folder untuk setiap skema), 'ObjectType' (file dalam folder untuk setiap jenis objek), 'Datar' (semua file dalam folder yang sama), atau 'File' (1 file tunggal).
/P: ExtractUsageProperties=(BOOLEAN 'False') Menentukan apakah properti penggunaan, seperti jumlah baris tabel dan ukuran indeks, akan diekstrak dari database.
/P: HashObjectNamesInLogs=(BOOLEAN 'False') Menentukan apakah akan mengganti semua nama objek dalam log dengan nilai hash acak.
/P: IgnoreExtendedProperties=(BOOLEAN 'False') Menentukan apakah properti yang diperluas harus diabaikan.
/P: IgnorePermissions=(BOOLEAN 'True') Menentukan apakah izin harus diabaikan.
/P: IgnoreUserLoginMappings=(BOOLEAN 'False') Menentukan apakah hubungan antara pengguna dan login diabaikan.
/P: LongRunningCommandTimeout=(INT32 '0') Menentukan batas waktu perintah yang berjalan lama dalam hitungan detik saat menjalankan kueri terhadap SQL Server. Gunakan 0 untuk menunggu tanpa batas.
/P: Storage=({File|Memori}) Menentukan jenis penyimpanan cadangan untuk model skema yang digunakan selama ekstraksi. 'Memori' adalah default untuk versi .NET Core dari SqlPackage. 'File' hanya tersedia dan default untuk versi .NET Framework dari SqlPackage.
/P: TableData=(STRING) Menunjukkan tabel tempat data akan diekstrak. Tentukan nama tabel dengan atau tanpa tanda kurung di sekitar bagian nama dalam format berikut: schema_name.table_identifier. Properti ini dapat ditentukan beberapa kali untuk menunjukkan beberapa opsi. Berlaku untuk data yang diekstrak ke .dacpac file dan Parquet.
/P: TempDirectoryForTableData=(STRING) Menentukan direktori sementara yang digunakan untuk menyangga data tabel sebelum ditulis ke file paket.
/P: VerifyExtraction=(BOOLEAN 'False') Menentukan apakah model skema yang diekstrak harus diverifikasi.

Langkah berikutnya