Paramètres et propriétés de l’action Extract de SqlPackage

L’action Extract de SqlPackage crée un schéma d’une base de données connectée dans un fichier DACPAC (.dacpac). Par défaut, les données ne sont pas incluses dans le fichier .dacpac. Pour inclure les données, utilisez l’action Export ou utilisez les propriétés ExtractAllTableData/TableData d’Extract.

Remarque

Bien que Microsoft Entra ID soit le nouveau nom d'Azure Active Directory (Azure AD) pour empêcher l'interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d'interface utilisateur, les fournisseurs de connexions, les codes d'erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.

Syntaxe de ligne de commande

SqlPackage lance les actions spécifiées en utilisant les paramètres, propriétés et variables SQLCMD spécifiés sur la ligne de commande.

SqlPackage /Action:Extract {parameters} {properties}

Notes

Quand une base de données assortie d’informations d’identification de mot de passe (par exemple, un utilisateur de l’authentification SQL) est extraite, le mot de passe est remplacé par un mot de passe différent d’une complexité appropriée. Les utilisateurs de SqlPackage ou DacFx doivent modifier le mot de passe après la publication du package d'application de la couche Données (dacpac).

Exemples

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

Paramètres de l’action Extract

Paramètre Forme abrégée Valeur Description
/AccessToken: /at: {string} Dans le cadre de l'authentification par jeton, spécifie le jeton d'accès à utiliser pour se connecter à la base de données cible.
/Action: /a: Extract Indique l'action à effectuer.
/AzureCloudConfig: /acc: {string} Spécifie les points de terminaison personnalisés pour la connexion à Microsoft Entra ID au format AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}".
/Diagnostics: /d: {True|False} Spécifie si la journalisation des diagnostics est affichée dans la console. Valeur par défaut False.
/DiagnosticsFile : /df: {string} Spécifie un fichier où stocker les journaux de diagnostic.
/MaxParallelism: /mp: {int} Spécifie le degré de parallélisme d'opérations simultanées sur une base de données. La valeur par défaut est 8.
/OverwriteFiles: /of: {True|False} Indique si SqlPackage doit remplacer les fichiers existants. Si vous choisissez False, SqlPackage abandonne l’action si un fichier existant est rencontré. La valeur par défaut est True.
/Properties: /p: {PropertyName}={Value} Spécifie une paire nom-valeur pour une propriété spécifique à l’action ; {PropertyName}={Value}.
/Quiet: /q: {True|False} Spécifie si les commentaires détaillés sont supprimés. Valeur par défaut False.
/SourceConnectionString: /scs: {string} Spécifie une chaîne de connexion SQL Server/Azure valide à la base de données source. Si ce paramètre est spécifié, la chaîne de connexion doit être utilisée exclusivement par tous les autres paramètres sources.
/SourceDatabaseName: /sdn: {string} Définit le nom la base de données source.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Spécifie si le chiffrement SQL doit être utilisé pour la connexion à la base de données source. La valeur par défaut est True.
/SourceHostNameInCertificate: /shnic: {string} Spécifie la valeur qui est utilisée pour valider le certificat TLS/SSL SQL Server source quand la couche de communication est chiffrée à l’aide du protocole TLS.
/SourcePassword: /sp: {string} Pour les scénarios d’authentification SQL Server, définit le mot de passe à utiliser pour accéder à la base de données source.
/SourceServerName: /ssn: {string} Définit le nom du serveur hébergeant la base de données source.
/SourceTimeout : /st: {int} Spécifie le délai d'attente (en secondes) pour l'établissement d'une connexion à la base de données source.
/SourceTrustServerCertificate: /stsc: {True|False} Spécifie s'il faut utiliser TLS pour chiffrer la connexion de la base de données source et ignorer la vérification de la chaîne de certificats pour valider la chaîne d'approbation. La valeur par défaut est False.
/SourceUser: /su: {string} Pour les scénarios d’authentification SQL Server, définit l’utilisateur SQL Server à utiliser pour accéder à la base de données source.
/TargetFile : /tf: {string} Spécifie un fichier cible (autrement dit, un fichier .dacpac) dans le stockage local à utiliser comme cible d’action au lieu d’une base de données. Si ce paramètre est utilisé, aucun autre paramètre cible n’est valide. Ce paramètre ne doit pas être valide pour les actions qui prennent uniquement en charge les cibles de base de données.
/TenantId: /tid: {string} Représente le nom de domaine ou l’ID de locataire Microsoft Entra. Cette option est requise pour la prise en charge des utilisateurs Microsoft Entra invités ou importés ainsi que des comptes Microsoft tels que outlook.com, hotmail.com ou live.com. Si ce paramètre est omis, l’ID de locataire par défaut pour Microsoft Entra ID est utilisé, à condition que l’utilisateur authentifié soit un utilisateur natif pour ce locataire. Toutefois, dans ce cas, les utilisateurs invités ou importés et/ou les comptes Microsoft hébergés dans cette instance Microsoft Entra ID ne sont pas pris en charge et l’opération échoue.
Pour plus d’informations, consultez Authentification universelle avec SQL Database et Azure Synapse Analytics (prise en charge de SSMS pour la MFA).
/ThreadMaxStackSize: /tmss: {int} Spécifie la taille maximale en mégaoctets du thread qui exécute l’action SqlPackage. Cette option ne doit être utilisée que pour les exceptions de dépassement de la capacité de la pile qui se produisent lors de l’analyse d’instructions Transact-SQL très volumineuses.
/UniversalAuthentication: /ua: {True|False} Spécifie si l’authentification universelle doit être utilisée. Quand la valeur est true, le protocole d’authentification interactive prend en charge l’authentification multifacteur. Cette option peut également être utilisée pour l’authentification Microsoft Entra sans authentification multifacteur, à l’aide d’un protocole interactif qui oblige l’utilisateur à saisir son nom d’utilisateur et son mot de passe ou de l’authentification intégrée (identifiants Windows). Si /UniversalAuthentication est défini sur True, aucune authentification Microsoft Entra ne peut être spécifiée dans SourceConnectionString (/scs). Si /UniversalAuthentication est défini sur False, l’authentification Microsoft Entra doit être spécifiée dans SourceConnectionString (/scs).
Pour plus d’informations, consultez Authentification universelle avec SQL Database et Azure Synapse Analytics (prise en charge de SSMS pour la MFA).

Propriétés spécifiques à l’action Extract

Propriété Valeur Description
/p: AzureSharedAccessSignatureToken=(STRING) Jeton de signature d'accès partagé (SAP) Azure. Consultez SqlPackage pour Azure Synapse Analytics et SqlPackage avec des données dans des fichiers Parquet.
/p: AzureStorageBlobEndpoint=(STRING) Point de terminaison Stockage Blob Azure. Consultez SqlPackage pour Azure Synapse Analytics et SqlPackage avec des données dans des fichiers Parquet.
/p: AzureStorageContainer=(STRING) Conteneur Stockage Blob Azure. Consultez SqlPackage pour Azure Synapse Analytics et SqlPackage avec des données dans des fichiers Parquet.
/p: AzureStorageKey=(STRING) Clé du compte de stockage Azure. Consultez SqlPackage pour Azure Synapse Analytics et SqlPackage avec des données dans des fichiers Parquet.
/p: AzureStorageRootPath=(STRING) Chemin racine de stockage dans le conteneur. Sans cette propriété, le chemin par défaut est servername/databasename/timestamp/. Consultez SqlPackage pour Azure Synapse Analytics et SqlPackage avec des données dans des fichiers Parquet.
/p: CommandTimeout=(INT32 '60') Spécifie le délai d'expiration de la commande (en secondes) lors de l'exécution de requêtes SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Spécifie le type de compression.
/p: DacApplicationDescription=(STRING) Définit la description de l'application à stocker dans les métadonnées DACPAC.
/p: DacApplicationName=(STRING) Définit le nom de l'application à stocker dans les métadonnées DACPAC. La valeur par défaut est le nom de la base de données.
/p: DacMajorVersion=(INT32 '1') Définit la version principale à stocker dans les métadonnées DACPAC.
/p: DacMinorVersion=(INT32 '0') Définit la version secondaire à stocker dans les métadonnées DACPAC.
/p: DatabaseLockTimeout=(INT32 '60') Spécifie le délai d’expiration (en secondes) du verrouillage de la base de données lors de l'exécution de requêtes dans SQL Server. Utilisez -1 pour attendre indéfiniment.
/p: ExtractAllTableData=(BOOLEAN 'False') Indique si les données de toutes les tables utilisateur sont extraites. Si la valeur est « true », les données de toutes les tables utilisateur sont extraites et vous ne pouvez pas spécifier des tables utilisateur individuelles pour l’extraction des données. Si la valeur est « false », spécifiez une ou plusieurs tables utilisateur à partir desquelles extraire des données.
/p: ExtractApplicationScopedObjectsOnly=(BOOLEAN 'True') Si la valeur est True, extrait uniquement les objets à portée d'application pour la source spécifiée. Si la valeur est False, extrait tous les objets pour la source spécifiée.
/p: ExtractReferencedServerScopedElements=(BOOLEAN 'True') Si la valeur est true, extrait les objets de connexion, d’audit de serveur et d’informations d’identification référencés par les objets de base de données source.
/p: ExtractTarget=({DacPac|File|Flat|ObjectType|Schema|SchemaObjectType} 'DacPac') Spécifie les autres formats de sortie du schéma de base de données, la valeur par défaut est « DacPac » pour générer un seul fichier .dacpac. Des options supplémentaires génèrent un ou plusieurs fichiers .sql organisés par « SchemaObjectType » (fichiers dans des dossiers pour chaque schéma et type d’objet), « Schéma » (fichiers dans des dossiers pour chaque schéma), « ObjectType » (fichiers dans des dossiers pour chaque type d’objet), « Plat » (tous les fichiers dans le même dossier) ou « Fichier » (1 fichier unique).
/p: ExtractUsageProperties=(BOOLEAN 'False') Indique si les propriétés d'utilisation, telles que le nombre de lignes du tableau et la taille de l'index, seront extraites de la base de données.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Spécifie s’il faut remplacer tous les noms d’objets par une valeur de hachage aléatoire dans les journaux.
/p: IgnoreExtendedProperties=(BOOLEAN 'False') Spécifie si les propriétés étendues doivent être ignorées.
/p: IgnorePermissions=(BOOLEAN 'True') Spécifie si les autorisations doivent être ignorées.
/p: IgnoreUserLoginMappings=(BOOLEAN 'False') Indique si les relations entre les utilisateurs et les connexions sont ignorées.
/p: LongRunningCommandTimeout=(INT32 '0') Spécifie le délai d'expiration (en secondes) de la commande longue lors de l'exécution de requêtes dans SQL Server. Utilisez 0 pour attendre indéfiniment.
/p: Storage=({File|Memory}) Spécifie le type de stockage de sauvegarde pour le modèle de schéma utilisé lors de l'extraction. La valeur par défaut est « Memory » pour la version .NET Core de SqlPackage. La valeur « File » n’est disponible que pour la version .NET Framework de SqlPackage où elle est la valeur par défaut.
/p: TableData=(STRING) Indique la table à partir de laquelle les données sont extraites. Spécifiez les parties du nom de la table avec ou sans crochets sous le format suivant : nom_schéma.identificateur_table. Cette propriété peut être spécifiée plusieurs fois pour indiquer plusieurs options. S’applique aux données extraites à la fois des fichiers .dacpac et Parquet.
/p: TempDirectoryForTableData=(STRING) Spécifie le répertoire temporaire utilisé pour la mise en mémoire tampon des données de table avant leur écriture dans le fichier de package.
/p: VerifyExtraction=(BOOLEAN 'False') Spécifie si le modèle de schéma extrait doit être vérifié.

Étapes suivantes