Delen via


Verifiëren met Microsoft Entra-id in bcp

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-database in Microsoft Fabric

Het bulk copy-programma (bcp) ondersteunt verschillende verificatiemodellen voor Microsoft Entra ID wanneer u verbinding maakt met Azure SQL Database, Azure SQL Managed Instance, SQL Database in Microsoft Fabric, Azure Synapse Analytics of SQL Server 2022 (16.x) en latere versies.

Als u wilt controleren of uw geïnstalleerde bcp Microsoft Entra-verificatie ondersteunt, voert u deze uit bcp --help en controleert u of deze -G wordt weergegeven in de lijst met beschikbare argumenten.

Platformbeperkingen

Niet alle verificatiemodi zijn beschikbaar op elk platform:

Gebruikersnaam en wachtwoord voor Microsoft Entra

Geef -G samen met -U (gebruikersnaam) en -P (wachtwoord) op.

In het volgende voorbeeld wordt een tabel bcptest geëxporteerd van de database testdb naar contoso.database.windows.net het bestand c:\last\data1.dat. Vervang <password> door een geldig wachtwoord.

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

In het volgende voorbeeld worden dezelfde gegevens geïmporteerd:

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 geïntegreerd

Geef -G zonder -U of -P. Het huidige Windows-account (of kerberos-identiteit in Linux/macOS) moet worden gefedereerd met Microsoft Entra-id. Vervang in de volgende voorbeelden <server> door je servernaam.

Exporteren:

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

Importeren:

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

Microsoft Entra Managed Service Identity

Verifiëren als een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit via een geconfigureerde DSN. Dezelfde benadering werkt voor zowel bcp in als bcp out.

Important

bcp is nauw gekoppeld aan zijn chauffeur. De primaire versie van bcp moet overeenkomen met de primaire versie van het stuurprogramma waarmee de DSN wordt gemaakt. Voer bcp uit om uw bcp-versie te bepalen.

Configureer een DSN via de ODBC-gegevensbronbeheerder:

  1. Druk op de Windows-toets op het toetsenbord.
  2. Typ ODBC en selecteer de juiste versie van de ODBC-gegevensbronbeheerder.
  3. Selecteer het tabblad User DSN of System DSN .
  4. Selecteer Toevoegen en volg de aanwijzingen.
  5. Wanneer u wordt gevraagd om een verificatietype, selecteert u Azure Managed Service Identity-verificatie.
  6. Plak voor een door de gebruiker toegewezen beheerde identiteit de Object (principal) ID identiteit in het vak Aanmeldings-id op het tabblad Verificatie.
  7. Ga door met het volgen van de aanwijzingen om het configureren van de DSN te voltooien.

Zie DSN's maken en bewerken in de gebruikersinterfacevoor een volledig overzicht, inclusief schermopnamen.

Gebruik de -D vlag om aan te geven dat de doorgegeven -S waarde een DSN is. De -D en -S schakelaars kunnen in elke volgorde op de opdrachtregel voorkomen.

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

Microsoft Entra ID-toegangstoken

Van toepassing op: alleen Linux en macOS. Windows wordt niet ondersteund.

bcp 17.8 en latere versies in Linux en macOS kunnen worden geverifieerd met een toegangstoken. In de volgende voorbeelden wordt de Azure CLI gebruikt om het token op te halen en naar een veilig tijdelijk bestand te schrijven.

Important

Het tokenbestand moet UTF-16LE zonder BOM zijn. Beperk bestandsmachtigingen en verwijder het bestand wanneer het niet meer nodig is, zoals wordt weergegeven in de volgende voorbeelden.

Door het systeem toegewezen beheerde identiteit

Vervang door <server> de servernaam.

  1. Meld u aan met uw beheerde identiteit:

    az login --identity
    
  2. Haal het token op, schrijf het naar een beveiligd tijdelijk bestand en voer bcp uit:

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

Door de gebruiker toegewezen beheerde identiteit

  1. Meld u aan met uw door de gebruiker toegewezen beheerde identiteit. Vervang <client_id> door een geldige waarde voor uw omgeving.

    az login --identity --username <client_id>
    
  2. Haal het token op, schrijf het naar een veilig tijdelijk bestand en voer bcp uit. Vervang <server> door een geldige waarde in uw omgeving.

    # 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 interactive

Van toepassing op: alleen Windows. Linux en macOS worden niet ondersteund.

Interactieve Microsoft Entra-verificatie maakt gebruik van een dialoogvenster voor verificatie en ondersteunt meervoudige verificatie (MFA). Interactieve verificatie vereist bcpversie 15.0.1000.34 of hoger en ODBC-stuurprogramma 18 voor SQL Server (of stuurprogramma 17.2 of hoger).

-G Geef alleen -U (gebruikersnaam) op. Neem niet op -P. bcp vraagt om het wachtwoord (of voor accounts waarvoor MFA is ingeschakeld, voltooit de geconfigureerde MFA-stroom).

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

Voor een Microsoft Entra-gebruiker die een Windows-account is van een federatief domein, neemt u het domein op in de gebruikersnaam (bijvoorbeeld joe@contoso.com):

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

Als gastgebruikers in een Microsoft Entra-tenant deel uitmaken van een groep met databasemachtigingen in Azure SQL Database, gebruikt u de alias van de gastgebruiker (bijvoorbeeld keith0@adventure-works.com).

Hulp krijgen

Bijdragen aan SQL-documentatie

Wist u dat u zelf SQL-inhoud kunt bewerken? Door dit te doen helpt u niet alleen onze documentatie te verbeteren, maar krijgt u ook erkenning als bijdrager aan de pagina.

Zie Microsoft Learn-documentatie bewerken voor meer informatie.