Megosztás a következőn keresztül:


SqlPackage Extract paraméterek és tulajdonságok

Az SqlPackage Extract művelet létrehoz egy csatlakoztatott adatbázis sémáját egy DACPAC-fájlban (.dacpac). Alapértelmezés szerint az adatok nem szerepelnek a .dacpac fájlban. Az adatok belefoglalásához használja az Exportálás műveletet , vagy használja az ExtractAllTableData/TableData kinyerési tulajdonságokat.

Megjegyzés:

Bár a Microsoft Entra ID az Azure Active Directory (Azure AD) új neve, a meglévő környezetek megzavarásának megakadályozása érdekében az Azure AD továbbra is megmarad néhány kódoltan rögzített elemben, például a felhasználói felület mezőiben, kapcsolatszolgáltatókban, hibakódokban és parancsmagokban. Ebben a cikkben a két név felcserélhető.

Parancssori szintaxis

SqlPackage elindítja a parancssorban megadott paraméterek, tulajdonságok és SQLCMD-változók használatával megadott műveleteket.

SqlPackage /Action:Extract {parameters} {properties}

Megjegyzés:

Ha egy jelszó-hitelesítő adatokkal rendelkező adatbázist (például egy SQL-hitelesítési felhasználót) nyer ki, a jelszó egy másik, megfelelő összetettségű jelszóra lesz lecserélve. Az SqlPackage- vagy DacFx-felhasználóknak a dacpac közzététele után módosítaniuk kell a jelszót.

Példák

# 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;"

A Kinyerés művelet paraméterei

Paraméter Rövid űrlap Érték Leírás
/AccessToken: /nél: {string} Meghatározza a céladatbázishoz történő csatlakozáskor használni kívánt jogkivonatalapú hitelesítési tokent.
/Akció: /a: Kivonat Megadja a végrehajtandó műveletet.
/AzureCloudConfig: /acc: {string} Megadja a Microsoft Entra-azonosítóhoz való csatlakozás egyéni végpontjait a következő formátumban: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" .
/Diagnosztika: /d: {Igaz|Hamis} Meghatározza, hogy a diagnosztikai naplózás kimenetként szolgál-e a konzolon. Alapértelmezés szerint hamis.
/DiagnosticsFile: /df: {string} A diagnosztikai naplók tárolására használható fájlt adja meg.
/DiagnosticsLevel: /dl {Nincs|Kikapcsolva|Kritikus|Hiba|Figyelmeztetés|Információ|Részletes} Meghatározza a diagnosztikai fájl szűrt nyomkövetési üzeneteinek szintjeit.
/MaxParallelism: /mp: {int} Az adatbázison futó párhuzamos műveletek párhuzamossági fokát adja meg. Az alapértelmezett érték 8.
/OverwriteFiles: /ból: {Igaz|Hamis} Megadja, hogy az SqlPackage felülírja-e a meglévő fájlokat. Ha hamis értéket ad meg, az SqlPackage megszakítja a műveletet, ha egy meglévő fájlba ütközik. Az alapértelmezett érték Igaz.
/Tulajdonságok: /p: {PropertyName}={Value} Egy műveletspecifikus tulajdonság névértékpárjának megadása; {PropertyName}={Value}.
/Quiet: /q: {Igaz|Hamis} Meghatározza, hogy a rendszer letiltja-e a részletes visszajelzést. Alapértelmezés szerint hamis.
/SourceConnectionString: /scs: {string} Érvényes SQL Server-/Azure-kapcsolati sztringet ad meg a forrásadatbázishoz. Ha ezt a paramétert adják meg, kizárólag ezt kell használni, minden más forrásparaméter helyett.
/SourceDatabaseName: /sdn: {string} Meghatározza a forrásadatbázis nevét.
/SourceEncryptConnection: /másodperc: {Nem kötelező|Kötelező|Szigorú|Igaz|Hamis} Megadja, hogy a forrásadatbázis-kapcsolathoz SQL-titkosítást kell-e használni. Az alapértelmezett érték Igaz.
/SourceHostNameInCertificate: /shnic: {string} A forrás SQL Server TLS/SSL-tanúsítvány ellenőrzéséhez használt értéket adja meg, ha a kommunikációs réteg TLS használatával van titkosítva.
/SourcePassword: /sp: {string} Az SQL Server hitelesítési forgatókönyveinél a forrásadatbázis eléréséhez használandó jelszót határozza meg.
/SourceServerName: /Ssn: {string} Meghatározza a forrásadatbázist üzemeltető kiszolgáló nevét.
/SourceTimeout: /st: {int} Meghatározza a kapcsolat létrehozásának időtúllépését a forrásadatbázishoz, másodpercekben.
/SourceTrustServerCertificate: /stsc: {Igaz|Hamis} Megadja, hogy a TLS használatával titkosítja-e a forrásadatbázis-kapcsolatot, és megkerüli-e a tanúsítványláncot a megbízhatóság ellenőrzéséhez. Az alapértelmezett érték Hamis.
/SourceUser: /Su: {string} Az SQL Server hitelesítési forgatókönyveinél a forrásadatbázis eléréséhez használni kívánt SQL Server-felhasználót határozza meg.
/TargetFile: /tf: {string} Egy célfájlt (azaz .dacpac-fájlt) ad meg a helyi tárolóban, amelyet az adatbázis helyett műveleti célként kell használni. Ha ezt a paramétert használja, más célparaméter nem lehet érvényes. Ez a paraméter érvénytelen az olyan műveletek esetében, amelyek csak az adatbázis-célokat támogatják.
/TenantId: /tid: {string} A Microsoft Entra bérlőazonosítóját vagy tartománynevét jelöli. Ez a beállítás a vendég- vagy importált Microsoft Entra-felhasználók, valamint a Microsoft-fiókok, például outlook.com, hotmail.com vagy live.com támogatásához szükséges. Ha ez a paraméter nincs megadva, a rendszer a Microsoft Entra-azonosító alapértelmezett bérlőazonosítóját használja, feltéve, hogy a hitelesített felhasználó a bérlő natív felhasználója. Ebben az esetben azonban az ebben a Microsoft Entra-azonosítóban üzemeltetett vendég- vagy importált felhasználók és/vagy Microsoft-fiókok nem támogatottak, és a művelet sikertelen lesz.
További információkért tekintse meg az SQL Database és az Azure Synapse Analytics univerzális hitelesítését (SSMS-támogatás az MFA-hoz) című témakört.
/ThreadMaxStackSize: /tmss: {int} Megadja az SqlPackage műveletet futtató szál maximális méretét megabájtban. Ez a beállítás csak akkor használható, ha a verem túlcsordulási kivételei nagyon nagy Transact-SQL utasítások elemzésekor fordulnak elő.
/UniversalAuthentication: /Ua: {Igaz|Hamis} Megadja, hogy univerzális hitelesítést kell-e használni. Ha Igaz értékre van állítva, az interaktív hitelesítési protokoll aktiválódik az MFA támogatásával. Ez a beállítás használható MFA nélküli Microsoft Entra-hitelesítéshez is, egy interaktív protokoll használatával, amely megköveteli a felhasználótól, hogy adja meg a felhasználónevét és jelszavát, illetve az integrált hitelesítést (Windows-hitelesítő adatokat). Ha a /UniversalAuthentication értéke Igaz, a SourceConnectionStringben (/scs) nem adható meg Microsoft Entra-hitelesítés. Ha a /UniversalAuthentication értéke Hamis, a Microsoft Entra-hitelesítést meg kell adni a SourceConnectionStringben (/scs).
További információkért tekintse meg az SQL Database és az Azure Synapse Analytics univerzális hitelesítését (SSMS-támogatás az MFA-hoz) című témakört.

A Kinyerés műveletre jellemző tulajdonságok

Ingatlan Érték Leírás
/p: AzureSharedAccessSignatureToken=(STRING) Az Azure megosztott hozzáférésű jogosultságkód (SAS) jogkivonata. Lásd a(z) SqlPackage az Azure Synapse Analyticshez és SqlPackage adatokkal Parquet-fájlokban.
/p: AzureStorageBlobEndpoint=(STRING) Azure Blob Storage-végpont. Lásd SqlPackage az Azure Synapse Analyticshez és SqlPackage Parquet fájlokban lévő adatokkal.
/p: AzureStorageContainer=(STRING) Azure Blob Storage-tároló. Lásd SqlPackage az Azure Synapse Analytics számára és SqlPackage parquet fájlokban lévő adatokkal.
/p: AzureStorageKey=(STRING) Azure-tárhely fiókkulcs. Lásd SqlPackage az Azure Synapse Analytics számára és SqlPackage Parquet fájlokban lévő adatokkal.
/p: AzureStorageRootPath=(STRING) Tároló gyökérútvonala. Ez a tulajdonság nélkül az elérési út alapértelmezés szerint servername/databasename/timestamp/. Lásd a SqlPackage Azure Synapse Analyticshez és a SqlPackage Parquet-fájlokban lévő adatokkal.
/p: CommandTimeout=(INT32 '60') A parancs időtúllépését adja meg másodpercekben, amikor lekérdezéseket hajt végre az SQL Serveren.
/p: CompressionOption=({Normal|Maximális|Gyors|Szupergyors|NotCompressed} "Normal" (Normál) A tömörítés típusát adja meg.
/p: DacApplicationDescription=(STRING) Meghatározza a DACPAC metaadataiban tárolandó alkalmazásleírást.
/p: DacApplicationName=(STRING) Definiálta a DACPAC metaadataiban tárolni kívánt alkalmazásnevet. Az alapértelmezett érték az adatbázis neve.
/p: DacMajorVersion=(INT32 '1') Meghatározza a DACPAC metaadataiban tárolandó főverziót.
/p: DacMinorVersion=(INT32 '0') Meghatározza a DACPAC metaadataiban tárolandó alverziót.
/p: DatabaseLockTimeout=(INT32 '60') Az SQLServer elleni lekérdezések végrehajtásakor megadja a zárolási időtúllépést másodpercekben. A -1 használatával korlátlan ideig várakozhat.
/p: ExtractAllTableData=(BOOLEAN 'False') Azt jelzi, hogy az összes felhasználói tábla adatai ki lesznek-e nyerve. Ha "igaz", az összes felhasználói tábla adatai ki lesznek nyerve, és nem adhat meg egyéni felhasználói táblákat az adatok kinyeréshez. Ha "hamis", adjon meg egy vagy több felhasználói táblát az adatok kinyeréséhez.
/p: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Ha igaz, csak a megadott forráshoz az alkalmazás hatókörébe tartozó objektumokat nyerje ki. Ha hamis, bontsa ki a megadott forrás összes objektumát.
/p: ExtractReferencedServerScopedElements=(BOOLEAN 'True') Ha igaz, nyerje ki a forrásadatbázis-objektumok által hivatkozott bejelentkezési, kiszolgálói naplózási és hitelesítő adatokat.
/p: ExtractTarget=({DacPac|Fájl|Sík|ObjectType|Séma|SémaObjektumtípus} 'DacPac') Az adatbázisséma alternatív kimeneti formátumait adja meg. Alapértelmezés szerint a "DacPac" formátum egyetlen fájlként adja ki az eredményt .dacpac. További opciók egy vagy több .sql fájlt adnak ki, amelyek a "SchemaObjectType" szerint (fájlok a séma- és objektumtípusok mappáiban), a "Séma" szerint (fájlok az egyes sémák mappáiban), az "ObjectType" szerint (fájlok az egyes objektumtípusok mappáiban), a "Flat" szerint (minden fájl ugyanazon mappában) vagy a "Fájl" szerint (1 egyetlen fájl) vannak rendezve.
/p: KivonatHasználatiTulajdonságok=(BOOLEAN 'Hamis') Megadja, hogy a rendszer kinyeri-e a használati tulajdonságokat, például a táblasorok számát és az index méretét az adatbázisból.
/p: HashObjectNamesInLogs=(BOOLEAN "Hamis") Megadja, hogy a naplókban szereplő összes objektumnevet véletlenszerű kivonatértékre cserélje-e.
/p: IgnoreExtendedProperties=(BOOLEAN 'Hamis') Megadja, hogy a kiterjesztett tulajdonságokat figyelmen kívül kell-e hagyni.
/p: IgnorePermissions=(LOGIKAI "Igaz" logikai érték) Megadja, hogy figyelmen kívül kell-e hagyni az engedélyeket.
/p: IgnoreUserLoginMappings=(BOOLEAN 'False') Megadja, hogy a rendszer figyelmen kívül hagyja-e a felhasználók és a bejelentkezések közötti kapcsolatokat.
/p: LongRunningCommandTimeout=(INT32 '0') A parancsok hosszú futási időtúllépését adja meg másodpercekben, amikor lekérdezéseket hajt végre az SQL Serveren. A 0 használatával határozatlan ideig várakozhat.
/p: Storage=({Fájl|Memória}) Megadja a kinyerés során használt sémamodell háttértárolójának típusát. A "Memória" az SqlPackage .NET Core-verziójának alapértelmezett verziója. A "Fájl" csak az SqlPackage .NET-keretrendszerének verziójához érhető el és alapértelmezett.
/p: TableData=(STRING) Azt a táblát jelzi, amelyből adatokat nyer ki. Adja meg a táblázat nevét a következő formátumban a névrészeket körülvevő zárójelekkel vagy anélkül: schema_name.table_identifier. Ez a tulajdonság többször is megadható, hogy több beállítást jelezze. A .dacpac fájlokra és a Parquet-fájlokra kinyert adatokra egyaránt vonatkozik.
/p: TempDirectoryForTableData=(SZTRING) Megadja a táblaadatok puffereléséhez használt ideiglenes könyvtárat a csomagfájlba való írás előtt.
/p: VerifyExtraction=(BOOLEAN 'False') Megadja, hogy a kinyert sémamodellt ellenőrizni kell-e.

Következő lépések