Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies
Vanaf SQL Server 2025 (17.x) Preview kunt u beheerde identiteit gebruiken voor toegang tot de volgende Azure-resources:
- Azure Blob Storage (opslagdienst van Azure)
- Azure Data Lake
Vereiste voorwaarden
- SQL Server 2025 (17.x) Preview
- SQL Server ingeschakeld door Azure Arc
-
allow server scoped db credentialsDe serverconfiguratieoptie inschakelen - Geef de beheerde identiteit toegang tot de Azure Blob Storage-resource.
Het register bijwerken
Waarschuwing
Het onjuist bewerken van het register kan uw systeem ernstig beschadigen. Voordat u wijzigingen aanbrengt in het register, raden we u aan een back-up te maken van waardegegevens op de computer.
Werk de registersubsleutel \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthenticationbij. Voeg de volgende vermeldingen toe voor uw gegevensopslagtypen:
| Entry | Waarde |
|---|---|
AADDataLakeEndPoint |
datalake.azure.net |
AADAzureStorageEndpoint |
storage.azure.com |
Registervoorbeeld
In het volgende voorbeeldscript worden de registersleutels ingevoegd voor een SQL Server 2025 (17.x) Preview-exemplaar met de naam SQL25Inst, als dit nog niet bestaat:
# Change to your SQL Server instance.
$yourInstance = "MSSQL17.SQL25Inst"
# Define the registry path
$regPath = "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$($yourInstance)\MSSQLServer\FederatedAuthentication"
Write-Host "Path to be updated: $regPath"
# Ensure the path exists
if (-not (Test-Path $regPath)) {
New-Item -Path $regPath -Force | Out-Null
}
# Define the values to create
$values = @{
"AADDataLakeEndPoint" = "datalake.azure.net"
"AADAzureStorageEndpoint" = "storage.azure.com"
}
foreach ($name in $values.Keys) {
$existing = Get-ItemProperty -Path $regPath -Name $name -ErrorAction SilentlyContinue
if ($null -eq $existing) {
New-ItemProperty -Path $regPath -Name $name -Value $values[$name] -PropertyType String -Force
Write-Host "Created registry value '$name' with '$($values[$name])'"
}
else {
Write-Host "Registry value '$name' already exists. Skipping..."
}
}
Voeg deze sleutels toe, samen met de sleutels die worden beschreven in beheerde identiteit (preview) voor SQL Server die is ingeschakeld door Azure Arc.
Databasereferenties maken
Voeg een databasereferentie toe voor beheerde identiteit.
Sta databasereferenties met serverbereik toe. Voer de volgende Transact-SQL-query uit:
EXECUTE sp_configure 'allow server scoped db credentials', 1; GO RECONFIGURE;Maak een databasereferentie binnen het bereik. In dit voorbeeld wordt de naam
managed_idgebruikt:CREATE DATABASE SCOPED CREDENTIAL [managed_id] WITH IDENTITY = 'Managed Identity';
Externe gegevensbron maken
Maak de externe gegevensbron met de volgende instellingen.
Voorvoegsel voor connectorlocatie
abs
Locatiepad
-
abs://<container_name>@<storage_account_name>.blob.core.windows.net/of, abs://<storage_account_name>.blob.core.windows.net/<container_name>
-
Ondersteunde locaties per product/service
- SQL Server 2025 (17.x) Preview ingeschakeld door Azure Arc
- SQL Server 2022 (16.x): Hiƫrarchische naamruimte ondersteund
Authentication
- Shared Access Signature (SAS), ofwel
- Beheerde identiteit
Query's uitvoeren op een Parquet-bestand in Azure Blob Storage
SQL Server 2025 (17.x) Preview biedt ondersteuning voor beheerde identiteiten via Azure Arc. Zie Beheerde identiteit (preview) voor SQL Server die is ingeschakeld door Azure Arc voor instructies.
In het volgende voorbeeld wordt een Query uitgevoerd op een Parquet-bestand in 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
);
Fouten en oplossingen
Externe tabel is niet toegankelijk (fout 16562)
U kunt fout 16562 tegenkomen bij het openen van Azure Blob Storage of Azure Data Lake als u niet aan de vereisten voldoet.
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.
Controleer de volgende items:
Het SQL Server-exemplaar is correct geconfigureerd voor Azure Arc. Zie Beheerde identiteit (preview) voor SQL Server die is ingeschakeld door Azure Arc voor meer informatie.
De vereiste registervermeldingen bestaan.
Controleer of de optie voor serverconfiguratie
allow server scoped db credentialsis ingeschakeld.
Bestand kan niet worden geopend (fout 13822)
Er kan fout 13822 optreden wanneer u toegang krijgt tot Azure Blob Storage of Azure Data Lake als de beheerde identiteit geen machtigingen voor het opslagaccount heeft of als de netwerktoegang tot opslag wordt geblokkeerd.
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.
Controleer de volgende items:
- Heeft de beheerde identiteit machtigingen voor de opslagcontainer?
- Heeft de beheerde identiteit toegang tot de opslagcontainer buiten SQL Server?
- Is het bestand exclusief vergrendeld?