Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SqlPackage Ayıklama eylemi, DACPAC dosyasında (.dacpac) bağlı bir veritabanının şemasını oluşturur. Varsayılan olarak, veriler .dacpac dosyasına dahil değildir. Verileri eklemek için Dışarı Aktar eylemini kullanın veya ExtractAllTableData/TableData özelliklerini kullanın.
Uyarı
Microsoft Entra ID, Azure Active Directory (Azure AD) içinyeni ad olsa da, mevcut ortamların kesintiye uğramasını önlemek için Azure AD yine de kullanıcı arabirimi alanları, bağlantı sağlayıcıları, hata kodları ve cmdlet'ler gibi sabit kodlanmış bazı öğelerde kalır. Bu makalede, iki ad birbirinin yerine kullanılabilir.
Komut satırı söz dizimi
SqlPackage, komut satırında belirtilen parametreleri, özellikleri ve SQLCMD değişkenlerini kullanarak belirtilen eylemleri başlatır.
SqlPackage /Action:Extract {parameters} {properties}
Uyarı
Parola kimlik bilgilerine sahip bir veritabanı (örneğin, sql kimlik doğrulaması kullanıcısı) ayıklandığında, parola uygun karmaşıklıkta farklı bir parolayla değiştirilir. Dacpac yayımlandıktan sonra SqlPackage veya DacFx kullanıcıları parolayı değiştirmelidir.
Örnekler
# 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;"
Ayıkla eylemi için parametreler
| Parametre | Kısa Form | Değer | Açıklama |
|---|---|---|---|
| /AccessToken: | /at: | {string} | Hedef veritabanına bağlanırken kullanılacak belirteç tabanlı kimlik doğrulama erişim belirtecini belirtir. |
| /Eylem: | /a: | Özet | Gerçekleştirilecek eylemi belirtir. |
| /AzureCloudConfig: | /Acc: | {string} | Microsoft Entra Id'ye bağlanmak için özel uç noktaları şu biçimde belirtir: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" . |
| /Teşhis: | /d: | {Doğru|Yanlış} | Tanılama günlüğünün konsola çıktı verip vermediğini belirtir. Varsayılan olarak False ayarlanmıştır. |
| /DiagnosticsFile: | /df: | {string} | Tanılama günlüklerini depolamak için bir dosya belirtir. |
| /DiagnosticsLevel: | /Dl | {Yok|Kapalı|Kritik|Hata|Uyarı|Bilgi|Ayrıntılı} | izleme iletilerinin filtrelenmiş tanılama dosyasında hangi düzeylerde yer alacağını belirtir |
| /MaksimumParalellik: | /mp: | {int} | Bir veritabanında çalıştırılan eşzamanlı işlemler için paralellik derecesini belirtir. Varsayılan değer 8'dir. |
| /OverwriteFiles: | /of: | {Doğru|Yanlış} | SqlPackage'ın var olan dosyaların üzerine yazıp yazmaması gerektiğini belirtir. False belirtilmesi, var olan bir dosyayla karşılaşıldığında SqlPackage'ın eylemi durdurmasına neden olur. Varsayılan değer True'dur. |
| /Özellikler: | /p: | {PropertyName}={Value} | eyleme özgü özellikiçin bir ad değer çifti belirtir; {PropertyName}={Value}. |
| /Sessiz: | /q: | {Doğru|Yanlış} | Ayrıntılı geri bildirimin gizlenip gizlenmeyeceğini belirtir. Varsayılan olarak False ayarlanmıştır. |
| /SourceConnectionString: | /scs: | {string} | Kaynak veritabanına geçerli bir SQL Server/Azure bağlantı dizesi belirtir. Bu parametre belirtilirse, yalnızca diğer tüm kaynak parametrelerinden kullanılmalıdır. |
| /SourceDatabaseName: | /sdn: | {string} | Kaynak veritabanının adını tanımlar. |
| /SourceEncryptConnection: | /sn: | {İsteğe bağlı|Zorunlu|Katı|Doğru|Yanlış} | Kaynak veritabanı bağlantısı için SQL şifrelemesinin kullanılıp kullanılmayacağı belirtir. Varsayılan değer True'dur. |
| /SourceHostNameInCertificate: | /shnic: | {string} | İletişim katmanı TLS kullanılarak şifrelendiğinde kaynak SQL Server TLS/SSL sertifikasını doğrulamak için kullanılan değeri belirtir. |
| /SourcePassword: | /sp: | {string} | SQL Server Kimlik Doğrulama senaryoları için, kaynak veritabanına erişmek için kullanılacak parolayı tanımlar. |
| /SourceServerName: | /ssn: | {string} | Kaynak veritabanını barındıran sunucunun adını tanımlar. |
| /SourceTimeout: | /st: | {int} | Kaynak veritabanıyla bağlantı kurmak için zaman aşımını saniye cinsinden belirtir. |
| /SourceTrustServerCertificate: | /stsc: | {Doğru|Yanlış} | Kaynak veritabanı bağlantısını şifrelemek için TLS'nin kullanılıp kullanılmayacağını ve güveni doğrulamak için sertifika zinciri adımını atlamayı belirtir. Varsayılan değer False'tur. |
| /SourceUser: | /su: | {string} | SQL Server Kimlik Doğrulaması senaryoları için, kaynak veritabanına erişmek için kullanılacak SQL Server kullanıcısını tanımlar. |
| /TargetFile: | /tf: | {string} | Yerel depolamada veritabanı yerine eylem hedefi olarak kullanılacak bir hedef dosyayı (yani bir .dacpac dosyası) belirtir. Bu parametre kullanılırsa, başka bir hedef parametre geçerli olmaz. Bu parametre yalnızca veritabanı hedeflerini destekleyen eylemler için geçersiz olacaktır. |
| /TenantId: | /tid: | {string} | Microsoft Entra kiracı kimliğini veya etki alanı adını temsil eder. Bu seçenek konuk veya içeri aktarılan Microsoft Entra kullanıcılarının yanı sıra outlook.com, hotmail.com veya live.com gibi Microsoft hesaplarını desteklemek için gereklidir. Bu parametre atlanırsa, kimliği doğrulanmış kullanıcının bu kiracı için yerel bir kullanıcı olduğu varsayılarak Microsoft Entra Kimliği için varsayılan kiracı kimliği kullanılır. Bu durumda, bu Microsoft Entra Kimliğinde barındırılan konuk veya içeri aktarılan kullanıcılar ve/veya Microsoft hesapları desteklenmez, işlem başarısızlıkla sonuçlanır. Daha fazla bilgi için bkz. SQL Veritabanı ve Azure Synapse Analytics ile Evrensel kimlik doğrulaması (MFA için SSMS desteği) . |
| /ThreadMaxStackSize: | /tmss: | {int} | SqlPackage eylemini çalıştıran iş parçacığı için megabayt cinsinden en büyük boyutu belirtir. Bu seçenek yalnızca çok büyük Transact-SQL deyimleri ayrıştırılırken oluşan yığın taşması istisnalarıyla karşılaşılırsa kullanılmalıdır. |
| /UniversalAuthentication: | /ua: | {Doğru|Yanlış} | Evrensel kimlik doğrulamasının kullanılıp kullanılmayacağı belirtir. True olarak ayarlandığında, MFA'yı destekleyen etkileşimli kimlik doğrulama protokolü etkinleştirilir. Bu seçenek, kullanıcının kullanıcı adını ve parolasını veya tümleşik kimlik doğrulamasını (Windows kimlik bilgileri) girmesini gerektiren etkileşimli bir protokol kullanılarak MFA olmadan Microsoft Entra kimlik doğrulaması için de kullanılabilir. /UniversalAuthentication True olarak ayarlandığında SourceConnectionString (/scs) içinde Microsoft Entra kimlik doğrulaması belirtilmez. /UniversalAuthentication False olarak ayarlandığında, Microsoft Entra kimlik doğrulaması SourceConnectionString (/scs) içinde belirtilmelidir. Daha fazla bilgi için bkz. SQL Veritabanı ve Azure Synapse Analytics ile Evrensel kimlik doğrulaması (MFA için SSMS desteği) . |
Ayıkla eylemine özgü özellikler
| Mülkiyet | Değer | Açıklama |
|---|---|---|
| /p: | AzureSharedAccessSignatureToken=(STRING) | Azure paylaşımlı erişim imzası belirteci (SAS). Bkz. Azure Synapse Analytics için SqlPackage ve Parquet dosyalarındaki verilerle SqlPackage. |
| /p: | AzureStorageBlobEndpoint=(STRING) | Azure Blob Depolama uç noktası. Bkz. Parquet dosyalarındaki verilerle Azure Synapse Analytics içinSqlPackage ve SqlPackage. |
| /p: | AzureDepolamaKapsayıcısı=(STRING) | Azure Blob Depolama kapsayıcısı. Bkz. Parquet dosyalarındaki verilerle Azure Synapse Analytics içinSqlPackage ve SqlPackage. |
| /p: | AzureStorageKey=(STRING) | Azure depolama hesabı anahtarı. Bkz. Azure Synapse Analytics için SqlPackage ve Parquet dosyalarındaki verilerle SqlPackage. |
| /p: | AzureStorageRootPath=(STRING) | Kapsayıcı içindeki depolama kök yolu. Bu özellik olmadan, yol varsayılan olarak servername/databasename/timestamp/şeklindedir. Bkz. Azure Synapse Analytics için SqlPackage ve Parquet dosyalarındaki verilerle SqlPackage. |
| /p: | CommandTimeout=(INT32 '60') | SQL Server'da sorgu yürütürken komut zaman aşımını saniyeler içinde belirtir. |
| /p: | CompressionOption=({Normal|Maksimum|Hızlı|SüperHızlı|Sıkıştırılmamış} 'Normal') | Sıkıştırma türünü belirtir. |
| /p: | DacApplicationDescription=(STRING) | DACPAC meta verilerinde depolanacak Uygulama açıklamasını tanımlar. |
| /p: | DacApplicationName=(STRING) | DACPAC meta verilerinde depolanacak Uygulama adını tanımladı. Varsayılan değer veritabanı adıdır. |
| /p: | DacMajorVersion=(INT32 '1') | DACPAC meta verilerinde depolanacak ana sürümü tanımlar. |
| /p: | DacMinorVersion=(INT32 '0') | DACPAC meta verilerinde depolanacak ikincil sürümü tanımlar. |
| /p: | DatabaseLockTimeout=(INT32 '60') | SQLServer'da sorgu yürütürken veritabanı kilitleme zaman aşımını saniyeler içinde belirtir. Süresiz olarak beklemek için -1 kullanın. |
| /p: | ExtractAllTableData=(BOOLEAN 'Yanlış') | Tüm kullanıcı tablolarındaki verilerin ayıklanıp ayıklanmamış olduğunu gösterir. 'True' ise, tüm kullanıcı tablolarındaki veriler ayıklanır ve verileri ayıklamak için tek tek kullanıcı tabloları belirtemezsiniz. 'false' ise, veri ayıklamak için bir veya daha fazla kullanıcı tablosu belirtin. |
| /p: | UygulamaKapsamliNesneleriSadeceCikar=(BOOLEAN 'Doğru') | Eğer doğruysa, yalnızca belirtilen kaynak için uygulama kapsamlı nesneleri ayıklayın. Yanlış ise, belirtilen kaynak için tüm nesneleri çıkarın. |
| /p: | Sunucu Kapsamlı Öğeleri Çıkar=(BOOLEAN 'True') | Doğruysa, kaynak veritabanı nesneleri tarafından başvuruda kullanılan oturum açma, sunucu denetimi ve kimlik bilgisi nesnelerini ayıklayın. |
| /p: | ExtractTarget=({DacPac|Dosya|Düz|ObjectType|Şema|SchemaObjectType} 'DacPac') | Veritabanı şemasının alternatif çıkış biçimlerini belirtir; tek bir .dacpac dosyanın çıktısını almak için varsayılan olarak 'DacPac' değeridir. Ek seçenekler, 'SchemaObjectType' (her şema ve nesne türü için klasörlerdeki dosyalar), 'Schema' (her şema için klasörlerdeki dosyalar), 'ObjectType' (her nesne türü için klasörlerdeki dosyalar), 'Düz' (aynı klasördeki tüm dosyalar) veya 'Dosya' (1 tek dosya) tarafından düzenlenmiş bir veya daha fazla .sql dosya çıkışı oluşturur. |
| /p: | ExtractUsageProperties=(BOOLEAN 'Yanlış') | Tablo satırı sayısı ve dizin boyutu gibi kullanım özelliklerinin veritabanından ayıklanıp ayık edilmeyeceğini belirtir. |
| /p: | HashObjectAdlariniGünlüklerdeÖzetle=(BOOLEAN 'False') | Günlüklerdeki tüm nesne adlarının rastgele bir karma değerle değiştirilip değiştirilmeyeceğini belirtir. |
| /p: | IgnoreExtendedProperties=(BOOLEAN 'False') | Genişletilmiş özelliklerin yoksayılıp yoksayılmayacağını belirler. |
| /p: | İzinleriYoksay=(BOOLEAN 'Doğru') | İzinlerin yoksayılıp yoksayılmayacağını belirtir. |
| /p: | KullanıcıGirişEşlemeleriniYoksay=(BOOLEAN 'Yanlış') | Kullanıcılar ve oturumlar arasındaki ilişkilerin göz ardı edilip edilmeyeceğini belirtir. |
| /p: | LongRunningCommandTimeout=(INT32 '0') | SQL Server'da sorgu yürütürken uzun süreli komut zaman aşımını saniye cinsinden belirtir. Süresiz olarak beklemek için 0 kullanın. |
| /p: | Depolama=({Dosya|Bellek}) | Ayıklama sırasında kullanılan şema modeli için yedekleme depolama türünü belirtir. 'Bellek', SqlPackage'ın .NET Core sürümü için varsayılandır. 'Dosya' yalnızca SqlPackage'ın .NET Framework sürümü için kullanılabilir ve varsayılandır. |
| /p: | TableData=(STRING) | Verilerin ayıklanacağı tabloyu gösterir. Ad bölümlerini çevreleyen köşeli ayraçlar içeren veya olmayan tablo adını şu biçimde belirtin: schema_name.table_identifier. Bu özellik, birden çok seçeneği belirtmek için birden çok kez belirtilebilir. Hem .dacpac dosyalarına hem de Parquet dosyalarına ayıklanan veriler için geçerlidir. |
| /p: | TempDirectoryForTableData=(STRING) | Paket dosyasına yazılmadan önce tablo verilerini arabelleğe almak için kullanılan geçici dizini belirtir. |
| /p: | VerifyExtraction=(BOOLEAN 'False') | Ayıklanan şema modelinin doğrulanıp doğrulanmayacağını belirtir. |
Sonraki Adımlar
- SqlPackage hakkında daha fazla bilgi edinin
- SqlPackage ile ilgili sorun giderme