bcp'de Microsoft Entra Kimliği ile kimlik doğrulaması

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'de Azure Synapse AnalyticsSQL veritabanı

Toplu kopyalama yardımcı programı (bcp), Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Microsoft Fabric'teki SQL veritabanı, Azure Synapse Analytics veya SQL Server 2022 (16.x) ve daha sonraki sürümlere bağlandığınızda çeşitli Microsoft Entra ID kimlik doğrulama modellerini destekler.

Yüklü bcp'nizin Microsoft Entra kimlik doğrulamasını destekleyip desteklemediğini denetlemek için bcp --help komutunu çalıştırın ve kullanılabilir bağımsız değişkenler listesinde -G göründüğünü doğrulayın.

Platform kısıtlamaları

Tüm kimlik doğrulama modları her platformda kullanılamaz:

Microsoft Entra kullanıcı adı ve parolası

-G ile birlikte -U (kullanıcı adı) ve -P (parola) verin.

Aşağıdaki örnek, contoso.database.windows.net üzerindeki testdb veritabanından bcptest tablosunu c:\last\data1.dat dosyasına aktarır. <password> geçerli bir parolayla değiştirin.

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

Aşağıdaki örnek aynı verileri içeri aktarır:

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 tümleşik

-G olmadan -U veya -P sağlayın. Geçerli Windows hesabı (veya Linux/macOS'ta Kerberos kimliği) Microsoft Entra Id ile birleştirilmiş olmalıdır. Aşağıdaki örneklerde <server>'i sunucu adınızla değiştirin.

Ihracat:

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

Ithalat:

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

Microsoft Entra Yönetilen Hizmet Kimliği

Yapılandırılmış bir DSN aracılığıyla sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik olarak kimlik doğrulaması yapın. Aynı yaklaşım hem hem bcp inde bcp out için çalışır.

Important

bcp , sürücüsüne sıkı bir şekilde bağlı. bcp'nin ana sürümü, DSN'nin oluşturulduğu sürücünün ana sürümüyle eşleşmelidir. bcp sürümünüzü belirlemek için komutunu çalıştırınbcp -v.

ODBC Veri Kaynağı Yöneticisi aracılığıyla bir DSN yapılandırın:

  1. Klavyenizde Windows tuşuna basın.
  2. ODBC uygun sürümünü yazın ve seçin.
  3. Kullanıcı DSN'si veya Sistem DSN'si sekmesini seçin.
  4. Ekle'yi seçin ve istemleri izleyin.
  5. Kimlik doğrulaması türü istendiğinde Azure Yönetilen Hizmet Kimliği kimlik doğrulaması'yı seçin.
  6. Kullanıcı Tarafından Atanan Yönetilen Kimlik için, kimlik doğrulama sekmesindeki Object (principal) ID kutusuna kimliği yapıştırın.
  7. DSN'yi yapılandırmayı tamamlamak için istemleri takip etmeye devam edin.

Ekran görüntüleri de dahil olmak üzere tam bir izlenecek yol için bkz. Kullanıcı arabiriminde DSN oluşturma ve düzenleme.

-D bayrağını, -S'ye geçirilen değerin bir DSN olduğunu belirtmek için kullanın. -D ve -S anahtarları komut satırında herhangi bir sırada görüntülenebilir.

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

Microsoft Entra ID erişim belirteci

Şunlar için geçerlidir: Yalnızca Linux ve macOS. Windows desteklenmez.

Linux ve macOS'ta bcp 17.8 ve sonraki sürümleri erişim belirteci ile kimlik doğrulaması yapabilir. Aşağıdaki örneklerde, belirteci almak ve güvenli bir geçici dosyaya yazmak için Azure CLI kullanılır.

Important

Belirteç dosyası, BOM olmadan UTF-16LE olmalıdır. Aşağıdaki örneklerde gösterildiği gibi, dosya izinlerini kısıtlayın ve artık gerekli olmadığında dosyayı silin.

Sistem tarafından atanan yönetilen kimlik

<server> öğesini sunucu adınızla değiştirin.

  1. Yönetilen kimliğinizle oturum açın:

    az login --identity
    
  2. Belirteci alın, güvenli bir geçici dosyaya yazın ve bcp'yi çalıştırın:

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

Kullanıcı tarafından atanan yönetilen kimlik

  1. Kullanıcı tarafından atanan yönetilen kimliğinizle oturum açın. değerini ortamınız için geçerli bir değerle değiştirin <client_id> .

    az login --identity --username <client_id>
    
  2. Belirteci alın, güvenli bir geçici dosyaya yazın ve bcp'yi çalıştırın. değerini ortamınız için geçerli bir değerle değiştirin <server> .

    # 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

Şunlar için geçerlidir: Yalnızca Windows. Linux ve macOS desteklenmez.

Microsoft Entra etkileşimli kimlik doğrulaması, kimlik doğrulaması için bir iletişim kutusu kullanır ve çok faktörlü kimlik doğrulamasını (MFA) destekler. Etkileşimli kimlik doğrulaması için bcpsürüm 15.0.1000.34 veya üzeri ve SQL Server için ODBC Sürücüsü 18 (veya sürücü 17.2 veya üzeri) gerekir.

Sadece -G için -U (kullanıcı adı) sağlayın. eklemeyin -P. bcp parolayı ister (veya MFA etkinleştirilmiş hesaplar için yapılandırılan MFA akışını tamamlar).

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

Federasyon etki alanından bir Windows hesabı olan bir Microsoft Entra kullanıcısı için etki alanını kullanıcı adına ekleyin (örneğin, joe@contoso.com):

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

Microsoft Entra kiracısında konuk kullanıcılar Azure SQL Veritabanı'nda veritabanı izinlerine sahip bir grubun parçasıysa, konuk kullanıcı diğer adını kullanın (örneğin, keith0@adventure-works.com).

Yardım alın

SQL belgelerine katkıda bulunma

SQL içeriğini kendiniz düzenleyebildiğinizi biliyor muydunuz? Bunu yaparsanız, belgelerimizin geliştirilmesine yardımcı olmakla kalmaz, aynı zamanda sayfaya katkıda bulunan olarak da kabul edilirsiniz.

Daha fazla bilgi için Bkz. Microsoft Learn belgelerini düzenleme.