Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Förhandsversion av SQL Server 2025 (17.x) och senare versioner
Från och med förhandsversionen av SQL Server 2025 (17.x) kan du använda hanterad identitet för att komma åt följande Azure-resurser:
- Azure Blob Storage-lagringstjänst
- Azure Data Lake
Förutsättningar
- Förhandsversion av SQL Server 2025 (17.x)
- SQL Server aktiverat av Azure Arc
-
allow server scoped db credentialsAktivera serverkonfigurationsalternativet - Ge den hanterade identiteten åtkomst till Azure Blob Storage-resursen.
Uppdatera registret
Varning
Felaktig redigering av registret kan allvarligt skada systemet. Innan du gör ändringar i registret rekommenderar vi att du säkerhetskopierar alla värdefulla data på datorn.
Uppdatera registerundernyckeln \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQLServer\FederatedAuthentication. Lägg till följande poster för dina datalagringstyper:
| Entry | Värde |
|---|---|
AADDataLakeEndPoint |
datalake.azure.net |
AADAzureStorageEndpoint |
storage.azure.com |
Registerexempel
I följande exempelskript infogas registernycklarna för en SQL Server 2025 (17.x) förhandsversion kallad SQL25Inst, om den inte redan finns:
# 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..."
}
}
Lägg till dessa nycklar tillsammans med nycklarna som beskrivs i Hanterad identitet (förhandsversion) för SQL Server som aktiveras av Azure Arc.
Skapa databasomfattade behörighetsuppgifter
Lägg till en databasomfattande autentiseringsuppgift för hanterad identitet.
Tillåt databasuppgifter som är begränsade till servern. Kör följande Transact-SQL fråga:
EXECUTE sp_configure 'allow server scoped db credentials', 1; GO RECONFIGURE;Skapa en databasomfångsbegränsad autentiseringsuppgift. I det här exemplet används namnet
managed_id:CREATE DATABASE SCOPED CREDENTIAL [managed_id] WITH IDENTITY = 'Managed Identity';
Skapa en extern datakälla
Skapa den externa datakällan med följande inställningar.
Anslutningsplats prefix
abs
Plats och sökväg
-
abs://<container_name>@<storage_account_name>.blob.core.windows.net/, eller abs://<storage_account_name>.blob.core.windows.net/<container_name>
-
Platser som stöds efter produkt/tjänst
- Förhandsversionen av SQL Server 2025 (17.x) aktiverad av Azure Arc
- SQL Server 2022 (16.x): Hierarkiskt namnområde stöds
autentisering
- Signatur för delad åtkomst (SAS) eller
- Hanterad identitet
Utföra en fråga efter en Parquet-fil på Azure Blob Storage
Förhandsversionen av SQL Server 2025 (17.x) stöder hanterad identitet via Azure Arc. Anvisningar finns i Hanterad identitet (förhandsversion) för SQL Server som aktiveras av Azure Arc.
Följande exempel frågar en Parquet-fil i 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
);
Fel och lösningar
Extern tabell är inte tillgänglig (fel 16562)
Du kan stöta på fel 16562 när du försöker komma åt Azure Blob Storage eller Azure Data Lake om du saknar förutsättningar:
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.
Kontrollera följande:
SQL Server-instansen är korrekt konfigurerad för Azure Arc. Mer information finns i Hanterad identitet (förhandsversion) för SQL Server som är aktiverad av Azure Arc.
De registerposter som krävs finns.
Kontrollera att
allow server scoped db credentialsalternativet för serverkonfiguration är aktiverat.
Det går inte att öppna filen (fel 13822)
Du kan stöta på fel 13822 när du får åtkomst till Azure Blob Storage eller Azure Data Lake om den hanterade identiteten saknar behörighet för lagringskontot eller om nätverksåtkomsten till lagring blockeras.
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.
Kontrollera följande:
- Har den hanterade identiteten behörighet till lagringscontainern?
- Kan den hanterade identiteten komma åt lagringscontainern utanför SQL Server?
- Är filen låst exklusivt?