Ověřování pomocí ID Microsoft Entra v bcp

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql database v Microsoft Fabric

Nástroj pro hromadné kopírování (bcp) podporuje několik modelů ověřování Microsoft Entra ID při připojení k Azure SQL Database, Azure SQL Managed Instance, SQL databázi v Microsoft Fabric, Azure Synapse Analytics nebo SQL Serveru 2022 (16.x) a novějším verzím.

Pokud chcete zkontrolovat, jestli nainstalovaný bcp podporuje ověřování Microsoft Entra, spusťte bcp --help a ověřte, jestli -G se zobrazí v seznamu dostupných argumentů.

Omezení platformy

Ne všechny režimy ověřování jsou k dispozici na všech platformách:

Uživatelské jméno a heslo Microsoft Entra

Zadejte -G společně -U (uživatelské jméno) a -P (heslo).

Následující příklad exportuje tabulku bcptest z databáze testdb do contoso.database.windows.net souboru c:\last\data1.dat. Nahraďte <password> platným heslem.

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

Následující příklad naimportuje stejná data:

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

Integrovaná aplikace Microsoft Entra

Poskytnout -G bez -U nebo -P. Aktuální účet Systému Windows (nebo identita Kerberos v systému Linux/macOS) musí být federovaný s ID Microsoft Entra. V následujících příkladech nahraďte <server> názvem vašeho serveru.

Vývozní:

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

Import:

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

Spravovaná identita služby Microsoft Entra

Ověřte se jako spravovaná identita přiřazená systémem nebo přiřazená uživatelem prostřednictvím nakonfigurovaného dsN. Stejný přístup funguje pro obojí bcp in i bcp out.

Important

bcp je úzce svázaný s jeho řidičem. Hlavní verze bcp se musí shodovat s hlavní verzí ovladače, se kterou se dsN vytvoří. Pokud chcete zjistit verzi bcp , spusťte bcp -vpříkaz .

Nakonfigurujte dsN prostřednictvím správce zdroje dat ODBC:

  1. Stiskněte klávesu Windows na klávesnici.
  2. Zadejte ODBC a vyberte odpovídající verzi správce zdroje dat ODBC.
  3. Vyberte kartu DSN uživatele nebo Systémová DSN.
  4. Vyberte Přidat a postupujte podle pokynů.
  5. Po zobrazení výzvy k zadání typu ověřování vyberte ověřování identit spravované služby Azure.
  6. Pro spravovanou identitu přiřazenou uživatelem vložte Object (principal) ID z identity do pole Přihlašovací ID na záložku ověřování.
  7. Pokračujte podle pokynů a dokončete konfiguraci DSN.

Úplný návod, včetně snímků obrazovky, najdete v tématu Vytváření a úpravy sítí DSN v uživatelském rozhraní.

-D Příznak použijte k označení, že hodnota předaná -S je DSN. Přepínače -D a -S se můžou na příkazovém řádku objevit v libovolném pořadí.

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

Přístupový token Microsoft Entra ID

Platí jenom pro: Linux a macOS. Windows se nepodporuje.

bcp 17.8 a novější verze v Linuxu a macOS se můžou ověřit pomocí přístupového tokenu. Následující příklady používají Azure CLI k načtení tokenu a jeho zápisu do zabezpečeného dočasného souboru.

Important

Soubor tokenu musí být ve formátu UTF-16LE bez BOM. Omezte oprávnění k souborům a odstraňte ho, když už ho nepotřebujete, jak je znázorněno v následujících příkladech.

Spravovaná identita přiřazená systémem

Nahraďte <server> názvem serveru.

  1. Přihlaste se pomocí spravované identity:

    az login --identity
    
  2. Načtěte token, zapište ho do zabezpečeného dočasného souboru a spusťte 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"
    

Spravovaná identita přiřazená uživatelem

  1. Přihlaste se pomocí spravované identity přiřazené uživatelem. Nahraďte <client_id> platnou hodnotou pro vaše prostředí.

    az login --identity --username <client_id>
    
  2. Načtěte token, zapište ho do zabezpečeného dočasného souboru a spusťte bcp. Nahraďte <server> platnou hodnotou pro vaše prostředí.

    # 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

Platí jenom pro: Windows. Linux a macOS se nepodporují.

Interaktivní ověřování Microsoft Entra používá k ověření dialogové okno a podporuje vícefaktorové ověřování (MFA). Interaktivní ověřování vyžaduje bcpverze 15.0.1000.34 nebo novější a ovladač ODBC 18 pro SQL Server (nebo ovladač 17.2 nebo novější).

Zadejte pouze -G s -U (uživatelským jménem). Nezahrnujte -P. Bcp zobrazí výzvu k zadání hesla (nebo pro účty s povoleným vícefaktorovým ověřováním, dokončí nakonfigurovaný tok MFA).

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

Pro uživatele Microsoft Entra, který je účtem Windows z federované domény, zahrňte doménu do uživatelského jména (například joe@contoso.com):

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

Pokud jsou uživatelé typu host v tenantovi Microsoft Entra součástí skupiny, která má oprávnění k databázi ve službě Azure SQL Database, použijte alias uživatele typu host (například keith0@adventure-works.com).

Získejte pomoc

Přispějte k dokumentaci SQL

Věděli jste, že obsah SQL můžete upravovat sami? Pokud to uděláte, nejen že vám pomůžete vylepšit naši dokumentaci, ale také jste získali kredit jako přispěvatel na stránku.

Další informace naleznete v Upravit dokumentaci Microsoft Learn.