Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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
-
SQL Server 2025 (17.x)
Azure Arc tarafından etkinleştirilen SQL ServerveyaAzure VM'lerinde SQL Server için Microsoft Entra kimlik doğrulamasını etkinleştirme
allow server scoped db credentialsSunucu yapılandırma seçeneğini etkinleştirin.Yönetilen kimliğe Azure Blob Depolama kaynağına erişim verin.
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.
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;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:
SQL Server örneği Azure Arc için düzgün yapılandırıldı. Daha fazla bilgi için bkz. Azure Arc tarafından etkinleştirilen SQL Server için yönetilen kimlik.
Gerekli kayıt defteri girdileri var.
Sunucu
allow server scoped db credentialsyapılandırma seçeneği etkindir.
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?