Partilhar via


parâmetros e propriedades do SqlPackage Extract

A ação Extração de SqlPackage cria um esquema de um banco de dados conectado em um arquivo DACPAC (.dacpac). Por padrão, os dados não são incluídos no arquivo .dacpac. Para incluir dados, utilize a ação Exportar ou use as propriedades Extract ExtractAllTableData/TableData.

Observação

Embora o Microsoft Entra ID seja o novo nome para o Azure Ative Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanece em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Sintaxe da linha de comando

SqlPackage inicia as ações especificadas usando os parâmetros, propriedades e variáveis SQLCMD especificados na linha de comando.

SqlPackage /Action:Extract {parameters} {properties}

Observação

Quando um banco de dados com credenciais de senha (por exemplo, um usuário de autenticação SQL) é extraído, a senha é substituída por uma senha diferente de complexidade adequada. Os usuários SqlPackage ou DacFx devem alterar a senha após a publicação do dacpac.

Exemplos

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

Parâmetros para a ação Extrair

Parâmetro Formulário Abreviado Valor Descrição
/AccessToken: /at: {string} Especifica o token de acesso de autenticação com base em token para utilizar ao conectar-se ao banco de dados de destino.
/Ação: /a: Extrato Especifica a ação a ser executada.
/AzureCloudConfig: /acc: {string} Especifica os pontos de extremidade personalizados para ligação ao Microsoft Entra ID no formato: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/Diagnóstico: /d: {Verdadeiro|Falso} Especifica se o log de diagnóstico é enviado para o console. A definição padrão é 'False'.
/FicheiroDeDiagnóstico: /df: {string} Especifica um arquivo para armazenar logs de diagnóstico.
/DiagnosticsLevel: /dl {Nenhuma|Desligado|Crítica|Erro|Atenção|Informação|Verbose} Especifica os níveis das mensagens de rastreamento filtradas no arquivo de diagnóstico
/MaxParallelism: /mp: {int} Especifica o grau de paralelismo para operações simultâneas em execução em um banco de dados. O valor padrão é 8.
/OverwriteFiles: /de: {Verdadeiro|Falso} Especifica se SqlPackage deve substituir arquivos existentes. Especificar false faz com que SqlPackage anule a ação se um arquivo existente for encontrado. O valor padrão é True.
/Propriedades: /p: {PropertyName}={Valor} Especifica um par de valor de nome para uma propriedade específica de ação ; {PropertyName}={Valor}.
/Silêncio: /q: {Verdadeiro|Falso} Especifica se os comentários detalhados são suprimidos. A definição padrão é 'False'.
/SourceConnectionString: /scs: {string} Especifica uma cadeia de conexão SQL Server/Azure válida para o banco de dados de origem. Se este parâmetro for especificado, deve ser utilizado exclusivamente para todos os outros parâmetros de origem.
/SourceDatabaseName: /sdn: {string} Define o nome do banco de dados de origem.
/SourceEncryptConnection: /seg: {Opcional|Obrigatório|Estrito|Verdadeiro|Falso} Especifica se a criptografia SQL deve ser usada para a conexão do banco de dados de origem. O valor padrão é True.
/SourceHostNameInCertificate: /shnic: {string} Especifica o valor usado para validar o certificado TLS/SSL do SQL Server de origem quando a camada de comunicação é criptografada usando TLS.
/SourcePassword: /sp: {string} Para cenários de autenticação do SQL Server, define a senha a ser usada para acessar o banco de dados de origem.
/SourceServerName: /ssn: {string} Define o nome do servidor que hospeda o banco de dados de origem.
/SourceTimeout: /st: {int} Especifica o tempo limite para estabelecer uma conexão com o banco de dados de origem em segundos.
/SourceTrustServerCertificate: /stsc: {Verdadeiro|Falso} Especifica se deve usar TLS para encriptar a ligação à base de dados de origem e ignorar a verificação da cadeia de certificados para validar a confiança. O valor padrão é False.
/SourceUser: /su: {string} Para cenários de autenticação do SQL Server, define o usuário do SQL Server a ser usado para acessar o banco de dados de origem.
/TargetFile: /tf: {string} Especifica um arquivo de destino (ou seja, um arquivo .dacpac) no armazenamento local a ser usado como destino da ação em vez de um banco de dados. Se este parâmetro for utilizado, nenhum outro parâmetro-alvo será válido. Este parâmetro será inválido para ações que ofereçam suporte apenas a destinos de banco de dados.
/TenantId: /tid: {string} Representa o ID do locatário ou nome de domínio do Microsoft Entra. Esta opção é necessária para suportar utilizadores convidados ou importados do Microsoft Entra, bem como contas Microsoft como outlook.com, hotmail.com ou live.com. Se esse parâmetro for omitido, a ID de locatário padrão para a ID do Microsoft Entra será usada, supondo que o usuário autenticado seja um usuário nativo para esse locatário. No entanto, neste caso, quaisquer utilizadores convidados ou importados e/ou contas Microsoft alojados neste ID do Microsoft Entra não são suportados e a operação falhará.
Para obter mais informações, consulte Autenticação universal com o Banco de dados SQL e Azure Synapse Analytics (suporte SSMS para MFA).
/ThreadMaxStackSize: /TMSS: {int} Especifica o tamanho máximo em megabytes para o thread que executa a ação SqlPackage. Esta opção deve ser usada apenas quando encontrar exceções de estouro de pilha (stack overflow) que ocorrem ao analisar instruções Transact-SQL muito extensas.
/AutenticaçãoUniversal: /ua: {Verdadeiro|Falso} Especifica se a autenticação universal deve ser usada. Quando definido como True, o protocolo de autenticação interativo é ativado suportando MFA. Esta opção também pode ser usada para autenticação do Microsoft Entra sem MFA, usando um protocolo interativo que exige que o usuário insira seu nome de usuário e senha ou autenticação integrada (credenciais do Windows). Quando /UniversalAuthentication é definido como True, nenhuma autenticação do Microsoft Entra pode ser especificada em SourceConnectionString (/scs). Quando /UniversalAuthentication é definido como False, a autenticação do Microsoft Entra deve ser especificada em SourceConnectionString (/scs).
Para obter mais informações, consulte Autenticação universal com o Banco de dados SQL e Azure Synapse Analytics (suporte SSMS para MFA).

Propriedades específicas da ação Extrair

Propriedade Valor Descrição
/p: AzureSharedAccessSignatureToken=(STRING) Token de assinatura de acesso compartilhado (SAS) do Azure. Consulte SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: AzureStorageBlobEndpoint=(STRING) Ponto de extremidade do Armazenamento de Blobs do Azure. Consulte SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: AzureStorageContainer=(STRING) Contêiner de Armazenamento de Blob do Azure. Consulte SqlPackage para Azure Synapse Analytics e SqlPackage com dados em ficheiros Parquet.
/p: AzureStorageKey=(STRING) Chave da conta de armazenamento do Azure. Consulte SqlPackage para Azure Synapse Analytics e SqlPackage com dados em ficheiros Parquet.
/p: AzureStorageRootPath=(STRING) Caminho da raiz de armazenamento dentro do contêiner. Sem essa propriedade, o caminho assume como padrão servername/databasename/timestamp/. Consulte SqlPackage para Azure Synapse Analytics e SqlPackage com dados em arquivos Parquet.
/p: CommandTimeout=(INT32 '60') Especifica o tempo limite do comando em segundos ao executar consultas no SQL Server.
/p: CompressionOption=({Normal|Máximo|Rápido|Super Rápido|Não Comprimido} 'Normal') Especifica o tipo de compactação.
/p: DacApplicationDescription=(STRING) Define a descrição do aplicativo a ser armazenada nos metadados do DACPAC.
/p: NomeDaAplicaçãoDac=(STRING) Definido o nome do aplicativo a ser armazenado nos metadados do DACPAC. O valor padrão é o nome do banco de dados.
/p: DacMajorVersion=(INT32 '1') Define a versão principal a ser armazenada nos metadados do DACPAC.
/p: DacMinorVersion=(INT32 '0') Define a versão secundária a ser armazenada nos metadados do DACPAC.
/p: DatabaseLockTimeout=(INT32 '60') Especifica o tempo limite de bloqueio do banco de dados em segundos ao executar consultas no SQLServer. Use -1 para aguardar indefinidamente.
/p: ExtractAllTableData=(BOOLEAN 'False') Indica se os dados de todas as tabelas de usuário são extraídos. Se 'true', os dados de todas as tabelas de usuário são extraídos e você não pode especificar tabelas de usuário individuais para extrair dados. Se 'false', especifique uma ou mais tabelas de usuário das quais extrair dados.
/p: ExtrairObjetosEscopoAplicaçãoApenas=(BOOLEAN 'True') Se verdadeiro, extraia apenas objetos de âmbito de aplicação para a fonte especificada. Se for falso, extrair todos os objetos para a fonte especificada.
/p: ExtractReferencedServerScopedElements=(BOOLEAN 'Verdadeiro') Caso seja verdadeiro, extraia os objetos de login, de auditoria de servidor e de credencial referidos por objetos de banco de dados de origem.
/p: ExtractTarget=({DacPac|Ficheiro|Plano|Tipo de objeto|Esquema|TipoDeObjetoDeEsquema} 'DacPac') Especifica formatos de saída alternativos do esquema de banco de dados, o padrão é 'DacPac' para gerar um .dacpac único arquivo. Opções adicionais produzem um ou mais .sql arquivos organizados por 'SchemaObjectType' (arquivos em pastas para cada esquema e tipo de objeto), 'Schema' (arquivos em pastas para cada esquema), 'ObjectType' (arquivos em pastas para cada tipo de objeto), 'Flat' (todos os arquivos na mesma pasta) ou 'File' (1 único arquivo).
/p: ExtractUsageProperties=(BOOLEANO 'Falso') Especifica se as propriedades de uso, como contagem de linhas da tabela e tamanho do índice, serão extraídas do banco de dados.
/p: HashObjectNamesInLogs=(BOOLEAN 'Falso') Especifica se todos os nomes de objeto em logs devem ser substituídos por um valor de hash aleatório.
/p: IgnoreExtendedProperties=(BOOLEANO 'Falso') Especifica se as propriedades estendidas devem ser ignoradas.
/p: IgnorePermissions=(BOOLEAN 'Verdadeiro') Especifica se as permissões devem ser ignoradas.
/p: IgnoreUserLoginMappings=(BOOLEAN 'False') Especifica se as relações entre usuários e logons são ignoradas.
/p: LongRunningCommandTimeout=(INT32 '0') Especifica o tempo limite do comando de longa execução em segundos ao executar consultas no SQL Server. Use 0 para aguardar indefinidamente.
/p: Storage=({Ficheiro|Memória}) Especifica o tipo de armazenamento de suporte para o modelo de esquema usado durante a extração. 'Memória' é o padrão para a versão .NET Core do SqlPackage. 'File' só está disponível como padrão para a versão .NET Framework do SqlPackage.
/p: TableData=(STRING) Indica a tabela da qual os dados serão extraídos. Especifique o nome da tabela com ou sem os colchetes ao redor das partes do nome no seguinte formato: schema_name.table_identifier. Esta propriedade pode ser especificada várias vezes para indicar várias opções. Aplica-se aos dados extraídos tanto para .dacpac quanto para arquivos Parquet.
/p: TempDirectoryForTableData=(STRING) Especifica o diretório temporário usado para armazenar em buffer os dados da tabela antes de serem gravados no arquivo do pacote.
/p: VerifyExtraction=(BOOLEANO 'Falso') Especifica se o modelo de esquema extraído deve ser verificado.

Próximas Etapas