Toegangsbeheer instellen voor gesynchroniseerde objecten in een serverloze SQL-pool
In Azure Synapse Analytics worden Spark-databases en -tabellen gedeeld met een serverloze SQL-pool. Lake-databases, Parquet- en CSV-ondersteunde tabellen die zijn gemaakt met Spark, zijn automatisch beschikbaar in een serverloze SQL-pool . Met deze functie kunt u met behulp van een serverloze SQL-pool gegevens verkennen en er query's op uitvoeren die zijn voorbereid met behulp van Spark-pools. In het onderstaande diagram ziet u een overzicht van architectuur op hoog niveau om deze functie te gebruiken. Eerst verplaatsen Azure Synapse Pipelines gegevens van on-premises (of andere) opslag naar Azure Data Lake Storage. Spark kan nu de gegevens verrijken en databases en tabellen maken die worden gesynchroniseerd met serverloze Synapse SQL. Later kan de gebruiker ad-hocquery's uitvoeren op de verrijkte gegevens of deze bijvoorbeeld leveren aan Power BI.
Volledige beheerderstoegang (sysadmin)
Zodra deze databases en tabellen vanuit Spark zijn gesynchroniseerd met een serverloze SQL-pool, kunnen deze externe tabellen in een serverloze SQL-pool worden gebruikt voor toegang tot dezelfde gegevens. Objecten in een serverloze SQL-pool zijn echter alleen-lezen vanwege de consistentie met de Spark-poolsobjecten. De beperking zorgt ervoor dat alleen gebruikers met Synapse SQL-Beheer istrator- of Synapse-Beheer istrator-rollen toegang hebben tot deze objecten in een serverloze SQL-pool. Als een niet-beheerder probeert een query uit te voeren op de gesynchroniseerde database/tabel, krijgt deze de volgende foutmelding: External table '<table>' is not accessible because content of directory cannot be listed.
ondanks dat ze toegang hebben tot gegevens in de onderliggende opslagaccounts.
Omdat gesynchroniseerde databases in een serverloze SQL-pool alleen-lezen zijn, kunnen ze niet worden gewijzigd. Het maken van een gebruiker of het verlenen van andere machtigingen mislukt als er een poging wordt uitgevoerd. Als u gesynchroniseerde databases wilt lezen, moet één machtigingen op serverniveau hebben (zoals sysadmin). Deze beperking is ook aanwezig op externe tabellen in een serverloze SQL-pool bij het gebruik van Azure Synapse Link voor tabellen met Dataverse - en Lake-databases.
Niet-beheerderstoegang tot gesynchroniseerde databases
Een gebruiker die gegevens moet lezen en rapporten moet maken, heeft meestal geen volledige beheerderstoegang (sysadmin). Deze gebruiker is meestal gegevensanalist die alleen gegevens moet lezen en analyseren met behulp van de bestaande tabellen. Ze hoeven geen nieuwe objecten te maken.
Een gebruiker met minimale machtigingen moet het volgende kunnen doen:
- Verbinding maken naar een database die wordt gerepliceerd vanuit Spark
- Selecteer gegevens via externe tabellen en open de onderliggende ADLS-gegevens.
Nadat het onderstaande codescript is uitgevoerd, kunnen niet-beheerders machtigingen op serverniveau hebben om verbinding te maken met een database. Hiermee kunnen gebruikers ook gegevens bekijken uit alle objecten op schemaniveau, zoals tabellen of weergaven. Beveiliging van gegevenstoegang kan worden beheerd op de opslaglaag.
-- 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;
Notitie
Deze instructies moeten worden uitgevoerd op de hoofddatabase, omdat dit allemaal machtigingen op serverniveau zijn.
Na het maken van een aanmelding en het verlenen van machtigingen kunnen gebruikers query's uitvoeren boven op de gesynchroniseerde externe tabellen. Deze beperking kan ook worden toegepast op Microsoft Entra-beveiligingsgroepen.
Meer beveiliging op de objecten kan worden beheerd via specifieke schema's en de toegang tot een specifiek schema vergrendelen. Voor de tijdelijke oplossing is extra DDL vereist. Voor dit scenario kunt u nieuwe serverloze database, schema's en weergaven maken die verwijzen naar de Gegevens van Spark-tabellen in ADLS.
Toegang tot de gegevens in het opslagaccount kan worden beheerd via ACL of reguliere rollen eigenaar/lezer/inzender van opslagblob voor Microsoft Entra-gebruikers/-groepen. Voor Service Principals (Microsoft Entra-apps) moet u de ACL-installatie gebruiken.
Notitie
- Als u het gebruik van OPENROWSET op de gegevens wilt verbieden, kunt u voor meer informatie de machtigingen van DENY Server bezoeken
DENY ADMINISTER BULK OPERATIONS to [login@contoso.com];
. - Als u specifieke schema's wilt verbieden, kunt u Voor meer informatie het weigeren van schemamachtigingen bezoeken
DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com];
.
Volgende stappen
Zie SQL-verificatie voor meer informatie.