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.
V Azure Synapse Analytics se databáze a tabulky Spark sdílejí s bezserverovým fondem SQL. Lake databáze, Parquet a tabulky založené na CSV vytvořené pomocí Sparku jsou automaticky dostupné v serverless SQL fondu. Tato funkce umožňuje použití bezserverového fondu SQL k prozkoumání a dotazování dat připravených pomocí fondů Sparku. Na následujícím diagramu vidíte základní přehled architektury, který tuto funkci využívá. Nejprve kanály Azure Synapse přesouvají data z místního (nebo jiného) úložiště do Azure Data Lake Storage. Spark teď může obohatit data a vytvářet databáze a tabulky, které se synchronizují s bezserverovou službou Synapse SQL. Později může uživatel spouštět ad hoc dotazy nad rozšířená data nebo ho obsluhovat například v Power BI.
Úplný přístup správce (správce systému)
Po synchronizaci těchto databází a tabulek ze Sparku do bezserverového fondu SQL je možné tyto externí tabulky v bezserverovém fondu SQL použít pro přístup ke stejným datům. Objekty v bezserverovém fondu SQL jsou ale jen pro čtení kvůli zachování konzistence s objekty fondů Sparku. Omezení znamená, že k těmto objektům v bezserverovém fondu SQL mají přístup jenom uživatelé s rolí Správce Synapse SQL nebo Synapse Administrator. Pokud se uživatel, který není správcem, pokusí spustit dotaz na synchronizovanou databázi nebo tabulku, zobrazí se tato chyba:
External table '<table>' is not accessible because content of directory cannot be listed. bez ohledu na to, že mají přístup k datům v podkladových účtech úložiště.
Vzhledem k tomu, že synchronizované databáze v bezserverovém fondu SQL jsou jen pro čtení, není možné je upravovat. Vytvoření uživatele nebo udělení dalších oprávnění se nezdaří, pokud se pokusíte. Pokud chcete číst synchronizované databáze, musí mít oprávnění na úrovni privilegovaného serveru (například správce systému). Toto omezení se také vztahuje na externí tabulky v bezserverovém fondu SQL při použití Azure Synapse Link pro Dataverse a také na tabulky databází jezera.
Přístup bez oprávnění správce k synchronizovaným databázím
Uživatel, který potřebuje číst data a vytvářet sestavy, obvykle nemá plný přístup administrátora (sysadmin). Tento uživatel je obvykle datový analytik, který potřebuje jen číst a analyzovat data pomocí existujících tabulek. Nemusí vytvářet nové objekty.
Uživatel s minimálním oprávněním by měl být schopný:
- Připojení k databázi replikované ze Sparku
- Vyberte data prostřednictvím externích tabulek a získejte přístup k podkladovým datům ADLS.
Po spuštění níže uvedeného skriptu kódu umožní uživatelům bez oprávnění správce, aby se mohli připojit k jakékoli databázi na úrovni serveru. Umožní také uživatelům zobrazit data ze všech objektů na úrovni schématu, jako jsou tabulky nebo zobrazení. Zabezpečení přístupu k datům je možné spravovat ve vrstvě úložiště.
-- Creating Azure AD login (same can be achieved for Azure AD app)
CREATE LOGIN [login@contoso.com] FROM EXTERNAL PROVIDER;
go;
GRANT CONNECT ANY DATABASE to [login@contoso.com];
GRANT SELECT ALL USER SECURABLES to [login@contoso.com];
GO;
Poznámka:
Tyto příkazy by se měly spouštět v hlavní databázi, protože se jedná o všechna oprávnění na úrovni serveru.
Po vytvoření přihlášení a udělení oprávnění můžou uživatelé spouštět dotazy nad synchronizovanými externími tabulkami. Toto zmírnění je také možné použít u skupin zabezpečení Microsoft Entra.
Větší zabezpečení objektů je možné spravovat prostřednictvím konkrétních schémat a uzamknout přístup ke konkrétnímu schématu. Alternativní řešení vyžaduje další DDL. V tomto scénáři můžete vytvořit novou bezserverovou databázi, schémata a zobrazení, která budou odkazovat na data tabulek Spark v ADLS.
Přístup k datům v účtu úložiště je možné spravovat prostřednictvím ACL nebo běžných rolí Vlastník údajů objektu blob úložiště/Čtenář/Přispěvatel pro uživatele nebo skupiny v Microsoft Entra. Pro služební účty (aplikace Microsoft Entra) dbejte na to, aby jste používali nastavení seznamu řízení přístupu (ACL).
Poznámka:
- Pokud chcete zakázat použití OPENROWSET nad daty, můžete použít
DENY ADMINISTER BULK OPERATIONS to [login@contoso.com];Další informace naleznete v části Odepřít oprávnění serveru. - Pokud chcete zakázat používání konkrétních schémat, můžete použít
DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com];Další informace naleznete v tématu Odepřít oprávnění schématu.
Další kroky
Další informace najdete v tématu Ověřování SQL.