Compartilhar via


Autenticar com a ID do Microsoft Entra no bcp

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsBanco de Dados SQL no Microsoft Fabric

O utilitário de programa de cópia em massa (bcp) dá suporte a vários modelos de autenticação do Microsoft Entra ID quando você se conecta ao Banco de Dados SQL do Azure, à Instância Gerenciada de SQL do Azure, ao banco de dados SQL do Azure no Microsoft Fabric, ao Azure Synapse Analytics ou ao SQL Server 2022 (16.x) e versões posteriores.

Para verificar se o bcp instalado dá suporte à autenticação do Microsoft Entra, execute bcp --help e verifique se ele -G aparece na lista de argumentos disponíveis.

Restrições de plataforma

Nem todos os modos de autenticação estão disponíveis em todas as plataformas:

  • A autenticação interativa do Microsoft Entra tem suporte apenas no Windows.

  • A autenticação integrada do Microsoft Entra no Linux e no macOS requer o Microsoft ODBC Driver 18 para SQL Server (driver 17.6.1 ou posterior, se você não puder mover para o driver 18) e um ambiente Kerberos configurado corretamente.

  • A autenticação com um arquivo de token de acesso (-P <token_file>) tem suporte somente no Linux e no macOS.

Nome de usuário e senha do Microsoft Entra

Forneça -G junto com -U (nome de usuário) e -P (senha).

O exemplo a seguir exporta a tabela bcptest do banco de dados testdbcontoso.database.windows.net para o arquivo c:\last\data1.dat. Substitua <password> por uma senha válida.

bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>

O exemplo a seguir importa os mesmos dados:

bcp bcptest in "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>

Microsoft Entra integrado

Forneça -G sem -U ou -P. A conta atual do Windows (ou identidade Kerberos no Linux/macOS) deve ser federada com a ID do Microsoft Entra. Nos exemplos a seguir, substitua <server> pelo nome do servidor.

Exportação:

bcp bcptest out "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c

Importação:

bcp bcptest in "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c

Identidade de Serviço Gerenciado Microsoft Entra

Autentique-se como uma identidade gerenciada atribuída pelo sistema ou atribuída pelo usuário por meio de um DSN configurado. A mesma abordagem funciona para ambos bcp in e bcp out.

Importante

bcp é firmemente acoplado ao seu driver. A versão principal do bcp deve corresponder à versão principal do driver com a qual o DSN é criado. Para determinar sua versão bcp , execute bcp -v.

Configure um DSN por meio do Administrador da Fonte de Dados ODBC:

  1. Pressione a tecla Windows no teclado.
  2. Digite ODBC e selecione a versão apropriada do Administrador da Fonte de Dados ODBC.
  3. Selecione a guia DSN do Usuário ou DSN do Sistema .
  4. Selecione Adicionar e siga os prompts.
  5. Quando solicitado para um tipo de autenticação, selecione a autenticação da Identidade de Serviço Gerenciada do Azure.
  6. Para uma Identidade Gerenciada Atribuída ao Usuário, cole o Object (principal) ID da identidade na caixa ID de Login na guia autenticação.
  7. Continue seguindo os prompts para concluir a configuração do DSN.

Para obter um passo a passo completo, incluindo capturas de tela, consulte Criação e edição de DSNs na interface do usuário.

Use a -D flag para indicar que o valor passado para -S é um DSN. -D e -S podem aparecer em qualquer ordem na linha de comando.

bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb

Token de acesso do Microsoft Entra ID

Aplica-se apenas a: Linux e macOS. Não há suporte para Windows.

O bcp 17.8 e versões posteriores no Linux e no macOS podem ser autenticados com um token de acesso. Os exemplos a seguir usam a CLI do Azure para recuperar o token e gravá-lo em um arquivo temporário seguro.

Importante

O arquivo de token deve ser UTF-16LE sem um BOM. Restrinja as permissões de arquivo e exclua o arquivo quando ele não for mais necessário, conforme mostrado nos exemplos a seguir.

Identidade gerenciada atribuída pelo sistema

Substitua <server> pelo nome do seu servidor.

  1. Entre com sua identidade gerenciada:

    az login --identity
    
  2. Recupere o token, escreva-o em um arquivo temporário seguro e execute bcp:

    # Create a secure temporary file for the token
    tokenFile=$(mktemp)
    chmod 600 "$tokenFile"
    
    # Retrieve the access token and write it as UTF-16LE without BOM
    az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile"
    
    # Run bcp with the token file
    bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c
    
    # Clean up token file
    rm -f "$tokenFile"
    

Identidade gerenciada atribuída pelo usuário

  1. Entre com sua identidade gerenciada atribuída pelo usuário. Substitua <client_id> por um valor válido para seu ambiente.

    az login --identity --username <client_id>
    
  2. Recupere o token, escreva-o em um arquivo temporário seguro e execute bcp. Substitua <server> por um valor válido para seu ambiente.

    # Create a secure temporary file for the token
    tokenFile=$(mktemp)
    chmod 600 "$tokenFile"
    
    # Retrieve the access token and write it as UTF-16LE without BOM
    az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile"
    
    # Run bcp with the token file
    bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c
    
    # Clean up token file
    rm -f "$tokenFile"
    

Microsoft Entra interativo

Aplica-se apenas a: Windows. Não há suporte para Linux e macOS.

A autenticação interativa do Microsoft Entra usa uma caixa de diálogo para autenticar e dá suporte à MFA (autenticação multifator). A autenticação interativa requer aversão bcp 15.0.1000.34 ou posterior e o Driver ODBC 18 para SQL Server (ou driver 17.2 ou posterior).

Forneça apenas -G com -U (nome de usuário). Não inclua -P. bcp solicita a senha (ou para contas com MFA habilitada, conclui o fluxo de MFA configurado).

bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com

Para um usuário do Microsoft Entra que é uma conta do Windows de um domínio federado, inclua o domínio no nome de usuário (por exemplo, joe@contoso.com):

bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U joe@contoso.com

Se os usuários convidados em um locatário do Microsoft Entra fizerem parte de um grupo que tem permissões de banco de dados no Banco de Dados SQL do Azure, use o alias do usuário convidado (por exemplo, keith0@adventure-works.com).

Obter ajuda

Contribua com a documentação do SQL

Você sabia que pode editar o conteúdo do SQL por conta própria? Ao fazer isso, além de melhorar nossa documentação, você também será creditado como um colaborador da página.

Para obter mais informações, consulte a documentação Edit Microsoft Learn.