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 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-parameter untuk aksi Ekstrak

Parameter Formulir Pendek Nilai Deskripsi
/AccessToken: /di: {string} Menentukan token akses autentikasi berbasis token yang akan digunakan saat menyambungkan ke database target.
/Perbuatan: /sebuah: 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: {Benar|Salah} Menentukan apakah log diagnostik dikeluarkan ke dalam konsol. Default ke False.
/DiagnosticsFile: /Df: {string} Menentukan file untuk menyimpan log diagnostik.
/DiagnosticsLevel: /dl {None|Nonaktif|Kritis|Kesalahan|Peringatan|Informasi|Verbose} Menentukan tingkat pesan jejak dari file diagnostik yang difilter
/MaxParallelism: /Mp: {int} Menentukan tingkat paralelisme untuk operasi bersamaan yang berjalan terhadap database. Nilai default adalah 8.
/OverwriteFiles: /dari: {Benar|Salah} Menentukan apakah SqlPackage harus menimpa file yang ada. Penggunaan 'false' menyebabkan SqlPackage membatalkan tindakan jika file yang ada ditemukan. Nilai default adalah True.
/Properti: /p: {PropertyName}={Value} Menentukan pasangan nilai nama untuk properti yang khusus untuk tindakan; {PropertyName}={Value}.
/Tenang: /q: {Benar|Salah} Menentukan apakah umpan balik terperinci dihilangkan. Beralih ke nilai False.
/SourceConnectionString: /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.
/SourceEncryptConnection: /Sec: {Opsional|Wajib|Ketat|Benar|Salah} 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: {Benar|Salah} 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 proses yang menjalankan tindakan SqlPackage. Opsi ini hanya boleh digunakan saat menghadapi pengecualian stack overflow yang terjadi ketika memproses pernyataan Transact-SQL yang sangat besar.
/UniversalAuthentication: /Ua: {Benar|Salah} 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 SourceConnectionString (/scs). Ketika /UniversalAuthentication diatur ke False, autentikasi Microsoft Entra harus ditentukan dalam SourceConnectionString (/scs).
Untuk informasi selengkapnya, lihat Autentikasi universal dengan SQL Database dan Azure Synapse Analytics (dukungan SSMS untuk MFA).

Fitur khusus untuk tindakan Ekstrak

Properti Nilai Deskripsi
/p: AzureSharedAccessSignatureToken=(STRING) Token SAS (tanda tangan akses bersama) Azure. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data di file Parquet.
/p: AzureStorageBlobEndpoint=(STRING) Titik akhir Azure Blob Storage. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data pada 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 menjadi default ke servername/databasename/timestamp/. Lihat SqlPackage untuk Azure Synapse Analytics dan SqlPackage dengan data di file Parquet.
/p: CommandTimeout=(INT32 '60') Menentukan batas waktu perintah dalam detik saat menjalankan kueri terhadap SQL Server.
/p: CompressionOption=({Normal|Maksimum|Cepat|Sangat Cepat|Tidak Terkompres} '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 'Benar') Jika benar, ekstrak objek login, audit server, dan kredensial yang direferensikan oleh objek basis data 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 'SALAH') Menentukan apakah properti penggunaan, seperti jumlah baris tabel dan ukuran indeks, akan diekstrak dari database.
/p: HashObjectNamesInLogs=(BOOLEAN 'Salah') Menentukan apakah akan mengganti semua nama objek dalam log dengan nilai hash acak.
/p: AbaikanPropertiDiperluas=(BOOLEAN 'False') Menentukan apakah properti tambahan harus diabaikan.
/p: AbaikanIzin=(BOOLEAN 'Benar') 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 dinyatakan beberapa kali untuk menunjukkan beberapa pilihan. Berlaku untuk data yang diekstrak ke file .dacpac dan file Parquet.
/p: TempDirectoryForTableData=(STRING) Menentukan direktori sementara yang digunakan untuk menyangga data tabel sebelum ditulis ke file paket.
/p: VerifikasiEkstraksi=(BOOLEAN ‘Salah’) Menentukan apakah model skema yang diekstrak harus diverifikasi.

Langkah berikutnya