Bagikan melalui


Menyambungkan ke Azure Storage dengan identitas terkelola dari PolyBase

Berlaku untuk: SQL Server 2025 (17.x) dan versi yang lebih baru

Dimulai dengan SQL Server 2025 (17.x), Anda dapat menggunakan identitas terkelola untuk mengakses sumber daya Azure berikut:

  • Azure Blob Storage
  • Azure Data Lake

Prasyarat

Untuk SQL Server di Komputer Virtual Azure

Setelah Anda menyelesaikan langkah-langkah yang diperlukan, tambahkan dua entri registri baru. Anda memerlukan entri registri ini hanya untuk SQL Server di Azure Virtual Machines. Untuk instans SQL Server yang diaktifkan oleh Azure Arc, entri ini dibuat secara otomatis.

Dalam registri, perbarui subkunci HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication.

Perhatian

Salah mengedit registri dapat sangat merusak sistem Anda. Sebelum membuat perubahan pada registri, kami sarankan Anda mencadangkan data bernilai apa pun di komputer.

Buat entri berikut:

Entry Nilai
AADAzureStorageEndPoint storage.azure.com
AADDataLakeEndPoint datalake.azure.net

Membuat kredensial lingkup database

Tambahkan kredensial khusus database untuk identitas terkelola.

  1. Izinkan kredensial database yang dibatasi oleh server. Jalankan kueri Transact-SQL berikut ini:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Buat kredensial cakupan database. Contoh ini menggunakan nama managed_id:

    CREATE DATABASE SCOPED CREDENTIAL [managed_id]
    WITH IDENTITY = 'Managed Identity';
    

Membuat sumber data eksternal

Buat sumber data eksternal dengan pengaturan berikut.

  • Awalan lokasi konektor

    • abs
  • Jalur lokasi

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/ atau
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Lokasi yang didukung berdasarkan produk atau layanan

    • SQL Server 2025 (17.x) diaktifkan oleh Azure Arc
    • SQL Server 2022 (16.x): Ruang nama hierarkis didukung
  • Authentication

    • Tanda tangan akses bersama (SAS), atau
    • Identitas yang dikelola

Menjalankan kueri pada file Parquet di Azure Blob Storage

SQL Server 2025 (17.x) mendukung identitas terkelola melalui Azure Arc. Untuk petunjuknya, lihat Identitas terkelola untuk SQL Server yang diaktifkan oleh Azure Arc.

Contoh berikut mengkueri file Parquet di Azure Blob Storage:

EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO

CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';

CREATE EXTERNAL DATA SOURCE [my_external_data_source]
WITH (
    LOCATION = 'abs://<container>@<storage_account_name>.blob.core.windows.net/',
    CREDENTIAL = managed_id
);

Kesalahan dan solusi

Tabel eksternal tidak dapat diakses (Kesalahan 16562)

Anda mungkin mengalami kesalahan 16562 saat mencoba mengakses Azure Blob Storage atau Azure Data Lake jika Anda kehilangan prasyarat:

Msg 16562, Level 16, State 1, Line 79
External table <name> is not accessible because location does not exist or it is used by another process.

Periksa item berikut:

File tidak dapat dibuka (Kesalahan 13822)

Anda mungkin mengalami kesalahan 13822 saat mengakses Azure Blob Storage atau Azure Data Lake, jika identitas terkelola tidak memiliki izin pada akun penyimpanan, atau akses jaringan ke penyimpanan diblokir:

Msg 13822, Level 16, State 1, Line 9
File <file> cannot be opened because it does not exist or it is used by another process.

Periksa item berikut:

  • Apakah identitas terkelola memiliki izin ke kontainer penyimpanan?
  • Dapatkah identitas terkelola mengakses kontainer penyimpanan di luar SQL Server?
  • Apakah file terkunci secara eksklusif?