Delen via


SqlPackage-parameters en -eigenschappen extraheren

De actie SqlPackage Extract maakt een schema van een verbonden database in een DACPAC-bestand (.dacpac). Standaard worden gegevens niet opgenomen in het DACPAC-bestand. Als u gegevens wilt opnemen, gebruikt u de actie Exporteren of gebruikt u de eigenschappen ExtractAllTableData TableData/.

Opmerking

Hoewel Microsoft Entra ID de nieuwe naam is voor Azure Active Directory (Azure AD), blijft Azure AD, om verstoring van bestaande omgevingen te voorkomen, nog steeds bestaan in sommige hardcoded elementen, zoals UI-velden, verbindingsproviders, foutcodes en cmdlets. In dit artikel zijn de twee namen uitwisselbaar.

De syntaxis van de opdrachtregel

SqlPackage de acties initieert die zijn opgegeven met behulp van de parameters, eigenschappen en SQLCMD-variabelen die zijn opgegeven op de opdrachtregel.

SqlPackage /Action:Extract {parameters} {properties}

Opmerking

Wanneer een database met wachtwoordreferenties (bijvoorbeeld een SQL-verificatiegebruiker) wordt geëxtraheerd, wordt het wachtwoord vervangen door een ander wachtwoord van geschikte complexiteit. SqlPackage- of DacFx-gebruikers moeten het wachtwoord wijzigen nadat de dacpac is gepubliceerd.

Voorbeelden

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

Parameters voor de actie Ophalen

Maatstaf Korte vorm Waarde Beschrijving
/AccessToken: /at: {string} Hiermee geeft u het verificatietoegangstoken op basis van tokens op dat moet worden gebruikt wanneer u verbinding maakt met de doeldatabase.
/Actie: /a: Uittreksel Geeft de actie aan die moet worden uitgevoerd.
/AzureCloudConfig: /acc: {string} Hiermee geeft u de aangepaste eindpunten op voor het maken van verbinding met Microsoft Entra ID in de indeling: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" .
/Diagnostiek: /d: {Waar|False} Geeft aan of diagnostische logboekregistratie naar de console wordt uitgevoerd. De standaardwaarde is False.
/DiagnosticsFile: /Df: {string} Hiermee geeft u een bestand op voor het opslaan van diagnostische logboeken.
/DiagnosticsLevel: /dl {Geen|Uitgeschakeld|Kritiek|Fout|Waarschuwing|Informatie|Gedetailleerd} Hiermee specificeert u de niveaus van traceringsberichten die het gefilterde diagnostische bestand bepalen.
/MaxParallelism: /Mp: {int} Hiermee geeft u de mate van parallelle uitvoering op voor gelijktijdige bewerkingen die worden uitgevoerd op een database. De standaardwaarde is 8.
/BestandenOverschrijven: /of: {Waar|False} Hiermee geeft u op of SqlPackage bestaande bestanden moet overschrijven. Als u onwaar opgeeft, wordt de actie door SqlPackage afgebroken als er een bestaand bestand wordt aangetroffen. De standaardwaarde is Waar.
/Eigenschappen: /p: {PropertyName}={Value} Hiermee geeft u een naamwaardepaar voor een actiespecifieke eigenschap; {PropertyName}={Value}.
/Rustig: /q: {Waar|False} Hiermee geeft u op of gedetailleerde feedback wordt onderdrukt. De standaardwaarde is False.
/SourceConnectionString: /scs: {string} Hiermee geeft u een geldige SQL Server/Azure-verbindingsreeks aan de brondatabase. Als deze parameter is opgegeven, wordt deze uitsluitend gebruikt van alle andere bronparameters.
/SourceDatabaseName: /Sdn: {string} Hiermee definieert u de naam van de brondatabase.
/SourceEncryptConnection: per seconde: {Optioneel|Verplicht|Strikt|Waar|Onwaar} Hiermee geeft u op of SQL-versleuteling moet worden gebruikt voor de brondatabaseverbinding. De standaardwaarde is Waar.
/SourceHostNameInCertificate: /shnic: {string} Hiermee geeft u de waarde op die wordt gebruikt om het SQL Server TLS/SSL-broncertificaat te valideren wanneer de communicatielaag wordt versleuteld met behulp van TLS.
/SourcePassword: /Sp: {string} Voor SQL Server-verificatiescenario's definieert u het wachtwoord dat moet worden gebruikt voor toegang tot de brondatabase.
/SourceServerName: /Ssn: {string} Hiermee definieert u de naam van de server die als host fungeert voor de brondatabase.
/SourceTimeout: /St: {int} Hiermee geeft u de time-out voor het tot stand brengen van een verbinding met de brondatabase in seconden.
/SourceTrustServerCertificate: /stsc: {Waar|False} Hiermee geeft u op of TLS moet worden gebruikt voor het versleutelen van de brondatabaseverbinding en het omzeilen van de certificaatketen om de vertrouwensrelatie te valideren. De standaardwaarde is Onwaar.
/SourceUser: /su: {string} Voor SQL Server-verificatiescenario's definieert u de SQL Server-gebruiker die moet worden gebruikt voor toegang tot de brondatabase.
/TargetFile: /tf: {string} Hiermee specificeert u een doelbestand (dat wil zeggen, een dacpac-bestand) in lokale opslag dat in plaats van een database als doel van een actie moet worden gebruikt. Als deze parameter wordt gebruikt, is er geen andere doelparameter geldig. Deze parameter is ongeldig voor acties die alleen databasedoelen ondersteunen.
/TenantId: /tid: {string} Vertegenwoordigt de Microsoft Entra-tenant-ID of domeinnaam. Deze optie is vereist voor de ondersteuning van gast- of geïmporteerde Microsoft Entra-gebruikers en Microsoft-accounts, zoals outlook.com, hotmail.com of live.com. Als deze parameter wordt weggelaten, wordt de standaardtenant-id voor Microsoft Entra-id gebruikt, ervan uitgaande dat de geverifieerde gebruiker een systeemeigen gebruiker is voor deze tenant. In dit geval worden gast- of geïmporteerde gebruikers en/of Microsoft-accounts die worden gehost in deze Microsoft Entra-id echter niet ondersteund en mislukt de bewerking.
Zie Universele verificatie met SQL Database en Azure Synapse Analytics (SSMS-ondersteuning voor MFA)voor meer informatie.
/ThreadMaxStackSize: /tmss: {int} Hiermee geeft u de maximale grootte in megabytes voor de thread waarop de SqlPackage-actie wordt uitgevoerd. Deze optie mag alleen worden gebruikt bij het tegenkomen van stack-overloop-uitzonderingen die optreden bij het parseren van zeer grote Transact-SQL-instructies.
/UniversalAuthentication: /ua: {Waar|False} Hiermee geeft u op of universele verificatie moet worden gebruikt. Als deze is ingesteld op True, wordt het interactieve verificatieprotocol geactiveerd dat MFA ondersteunt. Deze optie kan ook worden gebruikt voor Microsoft Entra-verificatie zonder MFA, met behulp van een interactief protocol waarbij de gebruiker zijn gebruikersnaam en wachtwoord of geïntegreerde verificatie (Windows-referenties) moet invoeren. Wanneer /UniversalAuthentication is ingesteld op True, kan er geen Microsoft Entra-verificatie worden opgegeven in SourceConnectionString (/scs). Wanneer /UniversalAuthentication is ingesteld op False, moet Microsoft Entra-verificatie worden opgegeven in SourceConnectionString (/scs).
Zie Universele verificatie met SQL Database en Azure Synapse Analytics (SSMS-ondersteuning voor MFA)voor meer informatie.

Eigenschappen die specifiek zijn voor de actie Ophalen

Vastgoed Waarde Beschrijving
/p: AzureSharedAccessSignatureToken=(STRING) Sas-token (Shared Access Signature) van Azure. Zie SqlPackage voor Azure Synapse Analytics en SqlPackage met gegevens in Parquet-bestanden.
/p: AzureStorageBlobEndpoint=(STRING) Azure Blob Storage-eindpunt. Zie SqlPackage voor Azure Synapse Analytics en SqlPackage met gegevens in Parquet-bestanden.
/p: AzureStorageContainer=(STRING) Azure Blob Storage-container. Zie SqlPackage voor Azure Synapse Analytics en SqlPackage met gegevens in Parquet-bestanden.
/p: AzureStorageKey=(STRING) Azure Storage-accountsleutel. Zie SqlPackage voor Azure Synapse Analytics en SqlPackage met gegevens in Parquet-bestanden.
/p: AzureStorageRootPath=(STRING) Basispad voor opslag in de container. Zonder deze eigenschap wordt het pad standaard ingesteld op servername/databasename/timestamp/. Zie SqlPackage voor Azure Synapse Analytics en SqlPackage met gegevens in Parquet-bestanden.
/p: CommandTimeout=(INT32 '60') Hiermee geeft u de time-out van de opdracht in seconden bij het uitvoeren van query's op SQL Server.
/p: CompressionOption=({Normaal|Maximaal|Snel|SuperSnel|NietGecomprimeerd} 'Normaal') Geeft het type compressie aan.
/p: DacApplicatieBeschrijving=(STRING) Definieert de beschrijving van de toepassing die moet worden opgeslagen in de DACPAC-metagegevens.
/p: DacApplicationName=(STRING) De toepassingsnaam gedefinieerd die moet worden opgeslagen in de DACPAC-metagegevens. De standaardwaarde is de databasenaam.
/p: DacMajorVersion=(INT32 '1') Definieert de primaire versie die moet worden opgeslagen in de DACPAC-metagegevens.
/p: DacMinorVersion=(INT32 '0') Definieert de secundaire versie die moet worden opgeslagen in de DACPAC-metagegevens.
/p: DatabaseLockTimeout=(INT32 '60') Hiermee geeft u de time-out voor de databasevergrendeling in seconden op bij het uitvoeren van query's op SQLServer. Gebruik -1 om voor onbepaalde tijd te wachten.
/p: ExtractAllTableData=(BOOLEAN 'False') Geeft aan of gegevens uit alle gebruikerstabellen worden geëxtraheerd. Als 'waar' is, worden gegevens uit alle gebruikerstabellen geëxtraheerd en kunt u geen afzonderlijke gebruikerstabellen opgeven voor het extraheren van gegevens. Als 'onwaar' is, geeft u een of meer gebruikerstabellen op waaruit gegevens moeten worden geëxtraheerd.
/p: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Als dit waar is, extraheert u alleen objecten met toepassingsbereik voor de opgegeven bron. Als dit onwaar is, extraheert u alle objecten voor de opgegeven bron.
/p: ExtractReferencedServerScopedElements=(BOOLEAAN 'Waar') Indien waar, extraheer dan aanmeldings-, servercontrole- en referentieobjecten waarnaar wordt verwezen door brondatabaseobjecten.
/p: ExtractTarget=({DacPac|Bestand|Flat|ObjectType|Schema|SchemaObjectType} 'DacPac') Hiermee geeft u alternatieve uitvoerindelingen van het databaseschema, standaard is DacPac om één .dacpac bestand uit te voeren. Met aanvullende opties wordt een of meer .sql bestanden uitgevoerd die zijn georganiseerd door SchemaObjectType (bestanden in mappen voor elk schema en objecttype), Schema (bestanden in mappen voor elk schema), ObjectType (bestanden in mappen voor elk objecttype), Plat (alle bestanden in dezelfde map) of 'Bestand' (1 enkel bestand).
/p: ExtractUsageProperties=(BOOLEAAN 'False') Hiermee geeft u op of gebruikseigenschappen, zoals het aantal tabelrijen en de indexgrootte, worden geëxtraheerd uit de database.
/p: HashObjectNamesInLogs=(BOOLEAN 'Onwaar') Hiermee geeft u op of alle objectnamen in logboeken moeten worden vervangen door een willekeurige hash-waarde.
/p: NegeerUitgebreideEigenschappen=(BOOLEAN 'False') Hiermee geeft u op of uitgebreide eigenschappen moeten worden genegeerd.
/p: IgnorePermissions=(BOOLEAN 'True') Hiermee geeft u op of machtigingen moeten worden genegeerd.
/p: IgnoreUserLoginMappings=(BOOLEAN 'Onwaar') Hiermee geeft u op of relaties tussen gebruikers en aanmeldingen worden genegeerd.
/p: LongRunningCommandTimeout=(INT32 '0') Hiermee specificeert u de timeout voor langlopende opdrachten in seconden bij het uitvoeren van queries op een SQL Server. Gebruik 0 om voor onbepaalde tijd te wachten.
/p: Storage=({File|Geheugen}) Geeft het type achterliggende opslag voor het schemamodel dat tijdens extractie wordt gebruikt. Geheugen is standaard voor .NET Core-versie van SqlPackage. 'Bestand' is alleen beschikbaar en standaard voor .NET Framework-versie van SqlPackage.
/p: TabelData=(STRING) Geeft de tabel aan waaruit gegevens worden geëxtraheerd. Geef de tabelnaam op met of zonder de haken rond de naamonderdelen in de volgende indeling: schema_name.table_identifier. Deze eigenschap kan meerdere keren worden opgegeven om meerdere opties aan te geven. Van toepassing op gegevens die zijn geëxtraheerd naar zowel .dacpac als Parquet-bestanden.
/p: TempDirectoryForTableData=(STRING) Hiermee geeft u de tijdelijke map op die wordt gebruikt om tabelgegevens te bufferen voordat deze naar het pakketbestand worden geschreven.
/p: VerifyExtraction=(BOOLEAN 'False') Hiermee geeft u op of het geëxtraheerde schemamodel moet worden geverifieerd.

Volgende stappen