PolyBase'den yönetilen kimlikle Azure Depolama'ya bağlanma

Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri

SQL Server 2025 'den (17.x) başlayarak, aşağıdaki Azure kaynaklarına erişmek için yönetilen kimliği kullanabilirsiniz:

  • Azure Blob Saklama Alanı
  • Azure Data Lake

Önkoşullar

Azure VM'lerinde SQL Server için

Gerekli adımları tamamladıktan sonra iki yeni kayıt defteri girdisi ekleyin. Bu kayıt defteri girdilerine yalnızca Azure Sanal Makineler'de SQL Server için ihtiyacınız vardır. Azure Arc tarafından etkinleştirilen SQL Server örnekleri için bu girdiler otomatik olarak oluşturulur.

Kayıt defterinde alt anahtarı güncelleştirin HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication .

Dikkat

Kayıt defterini yanlış düzenlemek sisteminize ciddi zararlar verebilir. Kayıt defterinde değişiklik yapmadan önce, bilgisayardaki değerli verileri yedeklemenizi öneririz.

Aşağıdaki girdileri oluşturun:

Entry Değer
AADAzureStorageEndPoint storage.azure.com
AADDataLakeEndPoint datalake.azure.net

Veritabanı kapsamlı kimlik bilgileri oluşturma

Yönetilen kimlik için veritabanı kapsamlı bir kimlik bilgisi ekleyin.

  1. Sunucu kapsamlı veritabanı kimlik bilgilerine izin ver. Aşağıdaki Transact-SQL sorgusunu çalıştırın:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Veritabanı kapsamlı bir kimlik bilgisi oluşturun. Bu örnekte adı managed_idkullanılır:

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

Dış veri kaynağı oluşturma

Aşağıdaki ayarlarla dış veri kaynağını oluşturun.

  • Bağlayıcı konumu ön eki

    • abs
  • Konum yolu

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/ veya
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Ürün veya hizmete göre desteklenen konumlar

    • Azure Arc tarafından etkinleştirilen SQL Server 2025 (17.x)
    • SQL Server 2022 (16.x): Desteklenen hiyerarşik ad alanı
  • Kimlik Doğrulaması

    • Paylaşılan erişim imzası (SAS) veya
    • İdare edilen kimlik

Azure Blob Depolama'da Parquet dosyası sorgulama

SQL Server 2025 (17.x), Azure Arc aracılığıyla yönetilen kimliği destekler. Yönergeler için bkz. Azure Arc tarafından etkinleştirilen SQL Server için yönetilen kimlik.

Aşağıdaki örnek, Azure Blob Depolama'da bir Parquet dosyasını sorgular:

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
);

Hatalar ve çözümler

Dış tablo erişilebilir değil (Hata 16562)

Önkoşullar eksikse Azure Blob Depolama'ya veya Azure Data Lake'e erişmeye çalışırken hata 16562 ile karşılaşabilirsiniz:

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.

Aşağıdaki öğeleri denetleyin:

Dosya açılamıyor (Hata 13822)

Yönetilen kimlik depolama hesabında izinlere sahip değilse veya depolamaya ağ erişimi engellenmişse Azure Blob Depolama'ya veya Azure Data Lake'e erişirken 13822 hatasıyla karşılaşabilirsiniz:

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.

Aşağıdaki öğeleri denetleyin:

  • Yönetilen kimliğin depolama kapsayıcısı için izinleri var mı?
  • Yönetilen kimlik, SQL Server dışındaki depolama konteynerine erişebilir mi?
  • Dosya özel olarak kilitlendi mi?