Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tip
Microsoft Fabric Data Warehouse je relační sklad v podnikovém měřítku na základu datového jezera s architekturou připravenou pro budoucnost, integrovanou AI a novými funkcemi. Pokud s datovými sklady začínáte, začněte pracovat s Fabric Data Warehouse. Stávající úlohy fondu dedikované SQL můžou upgradovat na Fabric a získat tak přístup k novým funkcím napříč datovou vědou, analýzou v reálném čase a reportováním.
Dotaz bezserverového SQL fondu čte soubory přímo z úložiště Azure. Oprávnění pro přístup k souborům v úložišti Azure se řídí na dvou úrovních:
- Úroveň úložiště – Uživatel by měl mít oprávnění pro přístup k podkladovým souborům úložiště. Správce úložiště by měl identitě Microsoft Entra povolit čtení a zápis souborů nebo vygenerovat klíč pro podpis sdíleného přístupu (SAS), který se použije pro přístup k úložišti.
-
Úroveň služby SQL – Uživatel by měl udělit oprávnění ke čtení dat pomocí externí tabulky nebo ke spuštění
OPENROWSETfunkce. Přečtěte si další informace o požadovaných oprávněních v této části.
Tento článek popisuje typy přihlašovacích údajů, které můžete použít, a jak je provedeno vyhledávání přihlašovacích údajů pro uživatele SQL a Microsoft Entra.
Oprávnění k úložišti
Bezserverový fond SQL v pracovním prostoru Synapse Analytics může číst obsah souborů uložených v Azure Data Lake úložišti. Musíte nakonfigurovat oprávnění k úložišti, aby uživatel, který spouští dotaz SQL, mohl číst soubory. Existují tři metody pro povolení přístupu k souborům:
- Řízení přístupu na základě role (RBAC) umožňuje přiřadit roli některému Microsoft Entra uživateli v tenantovi, kde je umístěné úložiště. Čtenář musí být členem role Storage Blob Data Reader, Storage Blob Data Contributor nebo Storage Blob Data Owner v účtu úložiště. Uživatel, který zapisuje data v úložišti Azure, musí být členem role Přispěvatel dat objektů blob služby Storage nebo Vlastník dat objektů blob služby Storage. Role Vlastník úložiště neznamená, že uživatel je také vlastníkem dat úložiště.
- Seznamy řízení přístupu (ACL) umožňují definovat podrobně vydefinovaná oprávnění Read(R), Write(W), a Execute(X) v úložišti Azure. ACL je možné přiřadit uživatelům Microsoft Entra. Pokud čtenáři chtějí číst soubor na cestě v Azure Storage, musí mít oprávnění Execute(X) ACL ve všech složkách cesty k souboru a oprávnění Read(R) ACL na souboru. Zjistěte, jak nastavit oprávnění ACL ve vrstvě úložiště.
- Sdílený přístupový podpis (SAS) umožňuje čtenáři přistupovat k souborům v úložišti Azure Data Lake pomocí časově omezeného tokenu. Čtenář nepotřebuje být ani ověřen jako uživatel služby Microsoft Entra. Token SAS obsahuje oprávnění udělená čtenáři a také období, kdy je token platný. Token SAS je dobrou volbou pro časově omezený přístup k jakémukoli uživateli, který nemusí být ve stejném tenantovi Microsoft Entra. Token SAS je možné definovat v účtu úložiště nebo v konkrétních adresářích. Přečtěte si další informace o grantování omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů.
Jako alternativu můžete soubory zpřístupnit veřejně tak, že povolíte anonymní přístup. Tento přístup by neměl být použit, pokud máte nepubliková data.
Podporované typy autorizace úložiště
Uživatel, který se přihlásil do bezserverového fondu SQL, musí mít oprávnění k přístupu k souborům a dotazování na soubory v Azure Storage, pokud nejsou veřejně dostupné. Pro přístup k nepublikované úložišti můžete použít čtyři typy autorizace: identita uživatele, sdílený přístupový podpis, instanční objekt a spravovaná identita.
Note
Microsoft Entra pass-through je výchozí nastavení při vytváření pracovního prostoru.
- Identita uživatele
- Sdílený přístupový podpis
- Služba principal
- Identita spravované služby
- Anonymní přístup
Identita uživatele, označovaná také jako "Microsoft Entra průchozí ověřování", je typ autorizace, při kterém se identita uživatele Microsoft Entra, který se přihlásil do bezserverového SQL fondu, používá k autorizaci přístupu k datům. Před přístupem k datům musí správce Azure Storage udělit oprávnění Microsoft Entra uživateli. Jak je uvedeno v podporovaných typech autorizace pro tabulku uživatelé databáze, nepodporuje se pro typ uživatele SQL.
Důležité
Ověřovací token Microsoft Entra může klientské aplikace ukládat do mezipaměti. Power BI například ukládá tokeny Microsoft Entra do mezipaměti a znovu používá stejný token po dobu jedné hodiny. Dlouhotrvající dotazy můžou selhat, pokud vyprší platnost tokenu uprostřed provádění dotazu. Pokud dochází k selháním dotazů způsobeným přístupovým tokenem Microsoft Entra, jehož platnost vyprší uprostřed dotazu, zvažte přepnutí na principál služby
Abyste mohli použít svoji identitu k přístupu k datům, musíte být členem role Vlastník dat Storage Blob, Přispěvatel dat Storage Blob nebo Čtenář dat Storage Blob. Jako alternativu můžete zadat podrobná pravidla ACL pro přístup k souborům a složkám. I když jste vlastníkem účtu úložiště, musíte se stále přidat do jedné z rolí dat objektů blob služby Storage. Další informace o řízení přístupu ve službě Azure Data Lake Store Gen2 najdete v článku Řízení přístupu ve službě Azure Data Lake Storage Gen2.
Scénáře napříč tenanty
V případech, kdy je Azure Storage v jiném tenantovi než bezserverový fond SQL Synapse, je doporučená metoda autorizace prostřednictvím instančního objektu. Autorizace SAS je také možná, i když se spravovaná identita nepodporuje.
| Druh autorizace | Úložiště chráněné bránou firewall | úložiště, které není chráněno firewallem |
|---|---|---|
| SAS | Podporováno | Podporováno |
| Hlavní služba | Nepodporováno | Podporováno |
Note
Pokud je Azure Storage chráněna firewallem Azure Storage, nebude podporován principál služby.
Podporované typy autorizace pro uživatele databází
Následující tabulka obsahuje dostupné typy autorizace Azure Storage pro různé metody přihlašování do Azure Synapse Analytics bezserverového koncového bodu SQL:
| Typ autorizace | Uživatel SQL | Microsoft Entra uživatel | Služba principal |
|---|---|---|---|
| Identita uživatele | Nepodporováno | Podporováno | Podporováno |
| SAS | Podporováno | Podporováno | Podporovaný |
| Služba principal | Podporováno | Podporováno | Podporováno |
| Spravovaná identita | Podporovaný | Podporováno | Podporováno |
Podporované úložiště a typy autorizace
Můžete použít následující kombinace typů autorizace a typů Azure Storage:
| Typ autorizace | Blob Storage | ADLS Gen1 | ADLS Gen2 |
|---|---|---|---|
| SAS | Podporováno | Nepodporováno | Podporováno |
| Služba principal | Podporováno | Podporováno | Podporováno |
| Spravovaná identita | Podporováno | Podporováno | Podporováno |
| Identita uživatele | Podporováno | Podporováno | Podporováno |
Scénáře napříč tenanty
V případech, kdy je Azure Storage v jiném tenantovi než bezserverový SQL pool Azure Synapse Analytics, je doporučenou metodou autorizace použití service principal. Autorizace sdíleného přístupového podpisu je také možná. Identita spravované služby se nepodporuje.
| Typ autorizace | Úložiště chráněné bránou firewall | úložiště bez ochrany firewallu |
|---|---|---|
| SAS | Podporováno | Podporováno |
| Služba principal | Nepodporováno | Podporováno |
Note
Pokud je Azure Storage chráněná bránou firewall Azure Storage a nachází se v jiném tenantovi, správce služby není podporován. Místo toho použijte sdílený přístupový podpis (SAS).
Úložiště chráněné bránou firewall
Účty úložiště můžete nakonfigurovat tak, aby umožňovaly přístup ke konkrétnímu bezserverovému fondu SQL vytvořením pravidla instance prostředku. Při přístupu k úložišti chráněnému bránou firewall použijte identitu uživatele nebo spravovanou identitu.
Note
Funkce brány firewall na Azure Storage je ve verzi Public Preview a je dostupná ve všech oblastech veřejného cloudu.
Následující tabulka obsahuje dostupné typy autorizace chráněné bránou firewall Azure Storage pro různé metody přihlašování do Azure Synapse Analytics bezserverového koncového bodu SQL:
| Typ autorizace | Uživatel SQL | Microsoft Entra uživatel | Služba principal |
|---|---|---|---|
| Identita uživatele | Nepodporováno | Podporováno | Podporováno |
| SAS | Nepodporováno | Nepodporováno | Nepodporováno |
| Služba principal | Nepodporováno | Nepodporováno | Nepodporováno |
| Spravovaná identita | Podporováno | Podporováno | Podporováno |
- Identita uživatele
- Sdílený přístupový podpis
- Služba principal
- Identita spravované služby
- Anonymní přístup
Pokud chcete získat přístup k úložišti chráněnému bránou firewall prostřednictvím identity uživatele, můžete použít portál Azure nebo modul Az.Storage PowerShell.
konfigurace brány firewall Azure Storage prostřednictvím portálu Azure
- Na portálu Azure vyhledejte svůj účet úložiště.
- V hlavní navigační nabídce přejděte do části Sítě v části Nastavení.
- V části PříkladyResource přidejte výjimku pro váš pracovní prostor Azure Synapse.
- Vyberte
Microsoft.Synapse/workspacesjako typ zdroje. - Vyberte název pracovního prostoru jako název instance.
- Vyberte Uložit.
konfigurace brány firewall Azure Storage přes PowerShell
Podle těchto kroků nakonfigurujte účet úložiště a přidejte výjimku pro Azure Synapse pracovní prostor.
Otevřete PowerShell nebo nainstalujte PowerShell.
Nainstalujte nejnovější verze modulu Az.Storage a modulu Az.Synapse, například v následujícím skriptu:
Install-Module -Name Az.Storage -RequiredVersion 3.4.0 Install-Module -Name Az.Synapse -RequiredVersion 0.7.0Důležité
Ujistěte se, že používáte aspoň verzi 3.4.0. Verzi Az.Storage můžete zkontrolovat spuštěním tohoto příkazu:
Get-Module -ListAvailable -Name Az.Storage | Select VersionPřipojte se ke svému tenantovi Azure:
Connect-AzAccountDefinování proměnných v PowerShellu:
- Název skupiny prostředků – najdete ho v části Overview na portálu Azure vašeho účtu úložiště.
- Název účtu úložiště – název účtu, který je chráněný pravidly brány firewall.
- ID tenanta – toto najdete v Azure portálu v Microsoft Entra ID, v části Vlastnosti, v Vlastnostech tenanta.
- Název pracovního prostoru – název pracovního prostoru Azure Synapse.
$resourceGroupName = "<resource group name>" $accountName = "<storage account name>" $tenantId = "<tenant id>" $workspaceName = "<Azure Synapse workspace name>" $workspace = Get-AzSynapseWorkspace -Name $workspaceName $resourceId = $workspace.Id $index = $resourceId.IndexOf("/resourceGroups/", 0) # Replace G with g - /resourceGroups/ to /resourcegroups/ $resourceId = $resourceId.Substring(0,$index) + "/resourcegroups/" ` + $resourceId.Substring($index + "/resourceGroups/".Length) $resourceIdDůležité
Hodnota
$resourceidvrácená skriptem PowerShellu by měla odpovídat této šabloně:/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Synapse/workspaces/{name-of-workspace}Je důležité psát resourcegroups v malých písmenech.Přidejte síťové pravidlo pro účet úložiště Azure.
$parameters = @{ ResourceGroupName = $resourceGroupName Name = $accountName TenantId = $tenantId ResourceId = $resourceId } Add-AzStorageAccountNetworkRule @parametersOvěřte, že síťové pravidlo účtu úložiště bylo aplikováno v bráně firewall vašeho účtu úložiště. Následující skript PowerShellu
$resourceidporovná proměnnou z předchozích kroků s výstupem síťového pravidla účtu úložiště.$parameters = @{ ResourceGroupName = $resourceGroupName Name = $accountName } $rule = Get-AzStorageAccountNetworkRuleSet @parameters $rule.ResourceAccessRules | ForEach-Object { if ($_.ResourceId -cmatch "\/subscriptions\/(\w\-*)+\/resourcegroups\/(.)+") { Write-Host "Storage account network rule is successfully configured." -ForegroundColor Green $rule.ResourceAccessRules } else { Write-Host "Storage account network rule is not configured correctly. Remove this rule and follow the steps in detail." -ForegroundColor Red $rule.ResourceAccessRules } }
Přihlašovací údaje
K dotazování souboru umístěného v Azure Storage potřebuje koncový bod bezserverového fondu SQL přihlašovací údaje, které obsahují ověřovací informace. Používají se dva typy přihlašovacích údajů:
- Přihlašovací údaje na úrovni serveru se používají pro ad hoc dotazy spuštěné pomocí
OPENROWSETfunkce. Název přihlašovacích údajů se musí shodovat s adresou URL úložiště. - Přihlašovací údaje s rozsahem databáze se používají pro externí tabulky. Odkazy
DATA SOURCEna externí tabulku s přihlašovacími údaji, které by se měly použít pro přístup k úložišti.
Udělení oprávnění ke správě přihlašovacích údajů
Udělení možnosti správy přihlašovacích údajů:
Aby mohl uživatel vytvořit nebo odstranit přihlašovací údaje na úrovni serveru, musí správce udělit
ALTER ANY CREDENTIALoprávnění k jeho přihlášení v hlavní databázi. Příklad:GRANT ALTER ANY CREDENTIAL TO [login_name];Aby mohl uživatel vytvořit nebo odstranit přihlašovací údaje s vymezeným oborem databáze, musí správce udělit
CONTROLoprávnění k databázi uživateli databáze v uživatelské databázi. Příklad:GRANT CONTROL ON DATABASE::[database_name] TO [user_name];
Udělení oprávnění k používání přihlašovacích údajů
Uživatelé databáze, kteří přistupují k externímu úložišti, musí mít oprávnění k používání přihlašovacích údajů. Aby mohl uživatel používat přihlašovací údaje, musí mít REFERENCES oprávnění ke konkrétním přihlašovacím údajům.
Pokud chcete udělit REFERENCES oprávnění k přihlášení na úrovni serveru, použijte v hlavní databázi následující dotaz T-SQL:
GRANT REFERENCES ON CREDENTIAL::[server-level_credential] TO [login_name];
Pokud chcete udělit REFERENCES oprávnění k přihlašovacím údajům v oboru databáze pro uživatele databáze, použijte v uživatelské databázi následující dotaz T-SQL:
GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[database-scoped_credential] TO [user_name];
Přihlašovací údaje na úrovni serveru
Přihlašovací údaje na úrovni serveru se používají, když se funkce OPENROWSET volá bez přihlášení SQL DATA_SOURCE k čtení souborů v účtu úložiště.
Název přihlašovacích údajů na úrovni serveru musí odpovídat základní adrese URL úložiště Azure, případně je následován názvem kontejneru. Přihlašovací údaje se přidají spuštěním příkazu CREATE CREDENTIAL. Argument musíte zadat CREDENTIAL NAME .
Note
Argument FOR CRYPTOGRAPHIC PROVIDER není podporován.
Název CREDENTIAL na úrovni serveru musí odpovídat následujícímu formátu: <prefix>://<storage_account_path>[/<container_name>]. Cesty k účtu úložiště jsou popsané v následující tabulce:
| Externí zdroj dat | Prefix | Cesta k účtu úložiště |
|---|---|---|
| Azure Blob Storage | https |
<storage_account>.blob.core.windows.net |
| Azure Data Lake Storage Gen1 | https |
<storage_account>.azuredatalakestore.net/webhdfs/v1 |
| Azure Data Lake Storage Gen2 | https |
<storage_account>.dfs.core.windows.net |
Přihlašovací údaje na úrovni serveru pak můžou přistupovat k úložišti Azure pomocí následujících typů ověřování:
Uživatelé Microsoft Entra mají přístup k libovolnému souboru v úložišti Azure, pokud jsou členové některé z těchto rolí: Vlastník dat objektů blob úložiště, Přispěvatel dat objektů blob úložiště nebo Čtenář dat objektů blob úložiště. Microsoft Entra uživatelé nepotřebují pro přístup k úložišti přihlašovací údaje.
Uživatelé ověření pomocí SQL nemůžou pro přístup k úložišti používat ověřování pomocí Microsoft Entra. K úložišti mají přístup prostřednictvím přihlašovacích údajů databáze nebo pomocí spravované identity, klíče SAS, principála služby, nebo pokud existuje veřejný přístup k úložišti.
Povolení na úrovni databáze
Přihlašovací údaje v rozsahu databáze se používají, když jakýkoli hlavní objekt volá OPENROWSET funkci s DATA_SOURCE nebo vybírá data z externí tabulky , která nemají přístup k veřejným souborům. Přihlašovací údaje v oboru databáze se nemusí shodovat s názvem účtu úložiště. Odkazuje se na něj ve ZDROJI DAT, který definuje umístění úložiště.
Přihlašovací údaje v oboru databáze umožňují přístup k úložišti Azure pomocí následujících typů ověřování:
- Microsoft Entra identity
- Sdílený přístupový podpis
- Služba principal
- Spravovaná identita
- Veřejný přístup
Uživatelé Microsoft Entra mají přístup k libovolnému souboru v úložišti Azure, pokud jsou členy některé z rolí: Vlastník dat pro objekty blob úložiště, Přispěvatel dat pro objekty blob úložiště nebo Čtenář dat pro objekty blob úložiště. Microsoft Entra uživatelé nepotřebují pro přístup k úložišti přihlašovací údaje.
CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
)
Uživatelé autentizovaní SQL nemohou pro přístup k úložišti používat ověřování Microsoft Entra. K úložišti mají přístup prostřednictvím přihlašovacích údajů k databázi pomocí spravované identity, klíče SAS, služebního principálu, nebo pokud je úložiště veřejně přístupné.
Přihlašovací údaje s vymezeným oborem databáze se používají v externích zdrojích dat k určení metody ověřování, která se použije pro přístup k tomuto úložišti:
CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>',
CREDENTIAL = <name of database scoped credential>
)
Příklady
Přístup k veřejně dostupnému zdroji dat
Pomocí následujícího skriptu vytvořte tabulku, která přistupuje k veřejně dostupnému zdroji dat.
CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat]
WITH ( FORMAT_TYPE = PARQUET)
GO
CREATE EXTERNAL DATA SOURCE publicData
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<public_container>/<path>' )
GO
CREATE EXTERNAL TABLE dbo.userPublicData ( [id] int, [first_name] varchar(8000), [last_name] varchar(8000) )
WITH ( LOCATION = 'parquet/user-data/*.parquet',
DATA_SOURCE = [publicData],
FILE_FORMAT = [SynapseParquetFormat] )
Uživatel databáze může číst obsah souborů ze zdroje dat pomocí externí tabulky nebo funkce OPENROWSET , která odkazuje na zdroj dat:
SELECT TOP 10 * FROM dbo.userPublicData;
GO
SELECT TOP 10 * FROM OPENROWSET(BULK 'parquet/user-data/*.parquet',
DATA_SOURCE = 'mysample',
FORMAT='PARQUET') as rows;
GO
Přístup ke zdroji dat pomocí přihlašovacích údajů
Upravte následující skript a vytvořte externí tabulku, která přistupuje k Azure úložišti pomocí tokenu SAS, Microsoft Entra identity uživatele nebo spravované identity pracovního prostoru.
-- Create master key in databases with some password (one-off per database)
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>'
GO
-- Create databases scoped credential that use Managed Identity, SAS token or service principal. User needs to create only database-scoped credentials that should be used to access data source:
CREATE DATABASE SCOPED CREDENTIAL WorkspaceIdentity
WITH IDENTITY = 'Managed Identity'
GO
CREATE DATABASE SCOPED CREDENTIAL SasCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sv=2019-10-1********ZVsTOL0ltEGhf54N8KhDCRfLRI%3D'
GO
CREATE DATABASE SCOPED CREDENTIAL SPNCredential WITH
IDENTITY = '**44e*****8f6-ag44-1890-34u4-22r23r771098@https://login.microsoftonline.com/**do99dd-87f3-33da-33gf-3d3rh133ee33/oauth2/token'
, SECRET = '.7OaaU_454azar9WWzLL.Ea9ePPZWzQee~'
GO
-- Create data source that one of the credentials above, external file format, and external tables that reference this data source and file format:
CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat] WITH ( FORMAT_TYPE = PARQUET)
GO
CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
-- Uncomment one of these options depending on authentication method that you want to use to access data source:
--,CREDENTIAL = WorkspaceIdentity
--,CREDENTIAL = SasCredential
--,CREDENTIAL = SPNCredential
)
CREATE EXTERNAL TABLE dbo.userData ( [id] int, [first_name] varchar(8000), [last_name] varchar(8000) )
WITH ( LOCATION = 'parquet/user-data/*.parquet',
DATA_SOURCE = [mysample],
FILE_FORMAT = [SynapseParquetFormat] );
Uživatel databáze může číst obsah souborů ze zdroje dat pomocí externí tabulky nebo funkce OPENROWSET , která odkazuje na zdroj dat:
SELECT TOP 10 * FROM dbo.userdata;
GO
SELECT TOP 10 * FROM OPENROWSET(BULK 'parquet/user-data/*.parquet', DATA_SOURCE = 'mysample', FORMAT='PARQUET') as rows;
GO
Související obsah
Tyto články vám pomůžou zjistit, jak se dotazovat na různé typy složek, typy souborů a vytvářet a používat zobrazení: