Dela via


Parametrar och egenskaper för SqlPackage Extract

Åtgärden SqlPackage Extract skapar ett schema för en ansluten databas i en DACPAC-fil (.dacpac). Som standard ingår inte data i .dacpac-filen. Om du vill inkludera data använder du åtgärden Exportera eller använder extraheringsegenskaperna ExtractAllTableData/TableData.

Anmärkning

Även om Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), för att förhindra avbrott i befintliga miljöer, förblir Azure AD fortfarande i vissa hårdkodade element som gränssnittsfält, anslutningsproviders, felkoder och cmdletar. I den här artikeln är de två namnen utbytbara.

Syntax för kommandorad

SqlPackage initierar de åtgärder som anges med hjälp av de parametrar, egenskaper och SQLCMD-variabler som anges på kommandoraden.

SqlPackage /Action:Extract {parameters} {properties}

Anmärkning

När en databas med lösenordsautentiseringsuppgifter (till exempel en SQL-autentiseringsanvändare) extraheras ersätts lösenordet med ett annat lösenord med lämplig komplexitet. SqlPackage- eller DacFx-användare bör ändra lösenordet när dacpac har publicerats.

Exempel

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

Parametrar för åtgärden Extrahera

Parameter Kort formulär Värde Beskrivning
/AccessToken: /vid: {string} Anger den tokenbaserade autentiseringsåtkomsttoken som ska användas när du ansluter till måldatabasen.
/Handling: /a: Extrakt Anger vilken åtgärd som ska utföras.
/AzureCloudConfig: /acc: {string} Anger de anpassade slutpunkterna för att ansluta till Microsoft Entra-ID i formatet: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" .
/Diagnostik: /d: {Sant|Falskt} Anger om diagnostikloggning ska skickas till konsolen. Standardvärdet är False.
/DiagnosticsFile: /df: {string} Anger en fil som ska lagra diagnostikloggar.
/DiagnosticsLevel: /dl {Inget|Av|Kritisk|Fel|Varning|Information|Utförlig} Anger nivåerna för spårningsmeddelanden som har filtrerats till diagnostikfilen
/MaxParallelism: /rl: {int} Anger graden av parallellitet för samtidiga åtgärder som körs mot en databas. Standardvärdet är 8.
/OverwriteFiles: /av: {Sant|Falskt} Anger om SqlPackage ska skriva över befintliga filer. Om du anger false avbryts åtgärden i SqlPackage om en befintlig fil påträffas. Standardvärdet är Sant.
/Egenskaper: /p: {PropertyName}={Value} Anger ett namnvärdepar för en åtgärdsspecifik egenskap. {PropertyName}={Value}.
/Quiet: /q: {Sant|Falskt} Anger om detaljerad feedback utelämnas. Standardvärdet är False.
/SourceConnectionString: /scs: {string} Anger en giltig SQL Server/Azure-anslutningssträng till källdatabasen. Om den här parametern anges ska den endast användas av alla andra källparametrar.
/SourceDatabaseName: /Sdn: {string} Definierar namnet på källdatabasen.
/SourceEncryptConnection: /sek: {Valfritt|Obligatoriskt|Strikt|Sant|Falskt} Anger om SQL-kryptering ska användas för källdatabasanslutningen. Standardvärdet är Sant.
/SourceHostNameInCertificate: /shnic: {string} Anger det värde som används för att verifiera källans SQL Server TLS/SSL-certifikat när kommunikationsskiktet krypteras med hjälp av TLS.
/SourcePassword: /sp: {string} För SQL Server Auth-scenarier definierar lösenordet som ska användas för att komma åt källdatabasen.
/SourceServerName: /Ssn: {string} Definierar namnet på servern som är värd för källdatabasen.
/SourceTimeout: /st: {int} Anger tidsgränsen för att upprätta en anslutning till källdatabasen på några sekunder.
/SourceTrustServerCertificate: /stsc: {Sant|Falskt} Anger om du vill använda TLS för att kryptera källdatabasanslutningen och kringgå att gå igenom certifikatkedjan för att verifiera förtroendet. Standardvärdet är False.
/SourceUser: /su: {string} För SQL Server-autentiseringsscenarier definierar SQL Server-användaren att använda för att komma åt källdatabasen.
/TargetFile: /tf: {string} Anger en målfil (d.dacpac-fil) i lokal lagring som ska användas som mål för åtgärden i stället för en databas. Om den här parametern används ska ingen annan målparameter vara giltig. Den här parametern ska vara ogiltig för åtgärder som endast stöder databasmål.
/TenantId: /tid: {string} Representerar Microsoft Entra-klientorganisations-ID eller domännamn. Det här alternativet krävs för att stödja gäst- eller importerade Microsoft Entra-användare samt Microsoft-konton som outlook.com, hotmail.com eller live.com. Om den här parametern utelämnas används standardklient-ID för Microsoft Entra-ID, förutsatt att den autentiserade användaren är en intern användare för den här klientorganisationen. I det här fallet stöds dock inte gäst- eller importerade användare och/eller Microsoft-konton som finns i det här Microsoft Entra-ID:t och åtgärden misslyckas.
Mer information finns i Universell autentisering med SQL Database och Azure Synapse Analytics (SSMS-stöd för MFA).
/ThreadMaxStackSize: /tmss: {int} Anger den maximala storleken i megabyte för den tråd som kör åtgärden SqlPackage. Det här alternativet bör endast användas när du stöter på stacköverflödesfel som inträffar vid parsning av mycket stora Transact-SQL-instruktioner.
/UniversalAuthentication: /Ua: {Sant|Falskt} Anger om universell autentisering ska användas. När värdet är True aktiveras det interaktiva autentiseringsprotokollet med stöd för MFA. Det här alternativet kan också användas för Microsoft Entra-autentisering utan MFA, med hjälp av ett interaktivt protokoll som kräver att användaren anger användarnamn och lösenord eller integrerad autentisering (Windows-autentiseringsuppgifter). När /UniversalAuthentication har angetts till True kan ingen Microsoft Entra-autentisering anges i SourceConnectionString (/scs). När /UniversalAuthentication är inställt på False måste Microsoft Entra-autentisering anges i SourceConnectionString (/scs).
Mer information finns i Universell autentisering med SQL Database och Azure Synapse Analytics (SSMS-stöd för MFA).

Egenskaper som är specifika för åtgärden Extrahera

Fastighet Värde Beskrivning
/p: AzureSharedAccessSignatureToken=(STRING) Azure-token för signatur för delad åtkomst (SAS). Se SqlPackage för Azure Synapse Analytics och SqlPackage med data i Parquet-filer.
/p: AzureStorageBlobEndpoint=(STRING) Azure Blob Storage-slutpunkt. Se även SqlPackage för Azure Synapse Analytics och SqlPackage med data i Parquet-filer.
/p: AzureStorageContainer=(STRING) Azure Blob Storage-container. Se SqlPackage för Azure Synapse Analytics och SqlPackage med data i Parquet-filer.
/p: AzureStorageKey=(STRING) Azure Storage-kontonyckel. Se även SqlPackage för Azure Synapse Analytics och SqlPackage med data i Parquet-filer.
/p: AzureStorageRootPath=(STRING) Lagringsrotsökväg i containern. Utan den här egenskapen är sökvägen som standard servername/databasename/timestamp/. Se också SqlPackage för Azure Synapse Analytics och SqlPackage med data i Parquet-filer.
/p: CommandTimeout=(INT32 '60') Anger maxtiden för kommandot i sekunder när du exekverar frågor mot SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Anger typen av komprimering.
/p: DacApplicationDescription=(STRING) Definierar programbeskrivningen som ska lagras i DACPAC-metadata.
/p: DacApplicationName=(STRING) Definierade programnamnet som ska lagras i DACPAC-metadata. Standardvärdet är databasnamnet.
/p: DacMajorVersion=(INT32 '1') Definierar den huvudversion som ska lagras i DACPAC-metadata.
/p: DacMinorVersion=(INT32 '0') Definierar den delversion som ska lagras i DACPAC-metadata.
/p: DatabaseLockTimeout=(INT32 '60') Anger tidsgränsen för databaslåsning i sekunder när frågor mot SQLServer körs. Använd -1 för att vänta på obestämd tid.
/p: ExtractAllTableData=(BOOLEAN 'Falsk') Anger om data från alla användartabeller extraheras. Om "sant" extraheras data från alla användartabeller och du kan inte ange enskilda användartabeller för att extrahera data. Om det är falskt anger du en eller flera användartabeller att extrahera data från.
/p: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Om sant, extrahera endast objekt med programperspektiv för den angivna källan. Om det är falskt extraherar du alla objekt för den angivna källan.
/p: ExtractReferencedServerScopedElements=(BOOLEAN 'True') Om det är sant extraherar du inloggnings-, servergransknings- och autentiseringsobjekt som refereras av källdatabasobjekt.
/p: ExtractTarget=({DacPac|Fil|Platt|ObjectType|Schema|SchemaObjectType} 'DacPac') Anger alternativa utdataformat för databasschemat, standardvärdet är "DacPac" för att mata ut en .dacpac enda fil. Ytterligare alternativ matar ut en eller flera .sql filer ordnade efter antingen "SchemaObjectType" (filer i mappar för varje schema och objekttyp), "Schema" (filer i mappar för varje schema), "ObjectType" (filer i mappar för varje objekttyp), "Flat" (alla filer i samma mapp) eller "Fil" (1 enskild fil).
/p: ExtractUsageProperties=(BOOLEAN 'Falskt') Anger om användningsegenskaper, till exempel antal tabellrader och indexstorlek, ska extraheras från databasen.
/p: HashObjectNamesInLogs=(BOOLEAN 'Falsk') Anger om du vill ersätta alla objektnamn i loggar med ett slumpmässigt hash-värde.
/p: IgnoreExtendedProperties=(BOOLEAN 'False') Anger om utökade egenskaper ska ignoreras.
/p: IgnoreraBehörigheter=(BOOLEAN 'True') Anger om behörigheter ska ignoreras.
/p: IgnoreUserLoginMappings=(BOOLEAN 'False') Anger om relationer mellan användare och inloggningar ignoreras.
/p: LongRunningCommandTimeout=(INT32 '0') Anger tidsgränsen för långvariga kommandon i sekunder vid exekvering av frågor mot SQL Server. Använd 0 för att vänta på obestämd tid.
/p: Storage=({File|Minne}) Anger typen av lagringsplats för schemamodellen som används under extraktion. 'Memory' är standard för .NET Core-versionen av SqlPackage. 'Fil' är endast tillgänglig och standard för .NET Framework-versionen av SqlPackage.
/p: TableData=(STRING) Indicates the table from which data will be extracted. Ange tabellnamnet med eller utan parenteserna som omger namndelarna i följande format: schema_namn.tabell_identifikator. Den här egenskapen kan anges flera gånger för att ange flera alternativ. Gäller för data som extraheras för både .dacpac och Parquet-filer.
/p: TempDirectoryForTableData=(STRING) Anger den temporära katalog som används för att buffra tabelldata innan den skrivs till paketfilen.
/p: VerifyExtraction=(BOOLEAN 'False') Anger om den extraherade schemamodellen ska verifieras.

Nästa steg