Hozzáférés külső tárolóhoz SQL-készlet használatával az Azure Synapse Analyticsben
Ez a cikk azt ismerteti, hogy a felhasználók hogyan olvashatnak adatokat az Azure Storage-ban kiszolgáló nélküli SQL-készletben tárolt fájlokból. A felhasználók a következő lehetőségeket kínálják a tárterület eléréséhez:
- OPENROW Standard kiadás T függvény, amely alkalmi lekérdezéseket tesz lehetővé az Azure Storage-fájlokon.
- Külső tábla , amely egy előre definiált adatstruktúra, amely külső fájlokra épül.
A felhasználó különböző hitelesítési módszereket használhat, például a Microsoft Entra átengedő hitelesítését (a Microsoft Entra-tagok alapértelmezett hitelesítése) és az SAS-hitelesítést (az SQL-tagok esetében az alapértelmezett).
Fájlok lekérdezése OPENROW használatával Standard kiadás T
Az OPENROW Standard kiadás T lehetővé teszi, hogy a felhasználók külső fájlokat kérdezhessenek le az Azure Storage-on, ha hozzáféréssel rendelkeznek a tárhoz. A kiszolgáló nélküli SQL-készlethez csatlakozó felhasználóknak az alábbi lekérdezéssel kell elolvasni a fájlok tartalmát az Azure Storage-ban:
SELECT * FROM
OPENROWSET(BULK 'https://<storage_account>.dfs.core.windows.net/<container>/<path>/*.parquet', format= 'parquet') as rows
A felhasználó a következő hozzáférési szabályokkal férhet hozzá a tárolóhoz:
- Microsoft Entra-felhasználó –
OPENROWSET
a hívó Microsoft Entra-identitásával fog hozzáférni az Azure Storage-hoz, vagy névtelen hozzáféréssel fér hozzá a tárolóhoz. - SQL-felhasználó –
OPENROWSET
névtelen hozzáféréssel fér hozzá a tárolóhoz, vagy a munkaterület SAS-jogkivonatával vagy felügyelt identitásával megszemélyesíthető.
Az SQL-tagok az OPENROW Standard kiadás T használatával közvetlenül lekérdezhetik a munkaterület SAS-jogkivonatokkal vagy felügyelt identitással védett fájljait. Ha egy SQL-felhasználó végrehajtja ezt a függvényt, az engedéllyel rendelkező ALTER ANY CREDENTIAL
power usernek létre kell hoznia egy kiszolgáló hatókörű hitelesítő adatot, amely megfelel a függvény URL-címének (a tároló és a tároló használatával), és hivatkozási engedélyt ad ehhez a hitelesítő adathoz az OPENROW Standard kiadás T függvény hívójának:
EXECUTE AS somepoweruser
CREATE CREDENTIAL [https://<storage_account>.dfs.core.windows.net/<container>]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sas token';
GRANT REFERENCES ON CREDENTIAL::[https://<storage_account>.dfs.core.windows.net/<container>] TO sqluser
Ha nincs az URL-címnek megfelelő kiszolgálószintű HITELESÍTŐ ADAT, vagy ha az SQL-felhasználó nem rendelkezik hivatkozási engedéllyel ehhez a hitelesítő adathoz, a rendszer visszaadja a hibát. Az SQL-tagok nem tudnak megszemélyesíteni valamilyen Microsoft Entra-identitást.
Megjegyzés:
Az OPENROW Standard kiadás T ezen verziója az alapértelmezett hitelesítést használó gyors és egyszerű adatfeltárásra lett tervezve. A megszemélyesítés vagy a felügyelt identitás használatához használja az OPENROW Standard kiadás T-t a következő szakaszban ismertetett DATA_SOURCE.
Adatforrások lekérdezése az OPENROWSET használatával
AZ OPENROW Standard kiadás T lehetővé teszi, hogy a felhasználó lekérdezhesse a külső adatforráson elhelyezett fájlokat:
SELECT * FROM
OPENROWSET(BULK 'file/path/*.parquet',
DATA_SOURCE = MyAzureInvoices,
FORMAT= 'parquet') as rows
A lekérdezést végrehajtó felhasználónak hozzá kell tudnia férni a fájlokhoz. A felhasználókat SAS-jogkivonattal vagy a munkaterület felügyelt identitásával kell megszemélyesíteni, ha nem tudnak közvetlenül hozzáférni a fájlokhoz a Microsoft Entra-identitásukkal vagy névtelen hozzáférésükkel.
DATABASE SCOPED CREDENTIAL
meghatározza, hogyan érheti el a hivatkozott adatforrás fájljait (jelenleg SAS és felügyelt identitás). Az engedéllyel rendelkező CONTROL DATABASE
power-felhasználónak létre kell hoznia DATABASE SCOPED CREDENTIAL
azt a tárolót EXTERNAL DATA SOURCE
, amely megadja az adatforrás és a hitelesítő adatok URL-címét, amelyet használni kell:
EXECUTE AS somepoweruser;
-- Create MASTER KEY if it doesn't exists in database
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some very strong password';
CREATE DATABASE SCOPED CREDENTIAL AccessAzureInvoices
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '******srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=201********' ;
CREATE EXTERNAL DATA SOURCE MyAzureInvoices
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>/' ,
CREDENTIAL = AccessAzureInvoices) ;
A hívónak az alábbi engedélyekkel kell rendelkeznie az OPENROW Standard kiadás T függvény végrehajtásához:
- Az OPENROW végrehajtásának egyik engedélye Standard kiadás T:
ADMINISTER BULK OPERATIONS
– lehetővé teszi a bejelentkezést az OPENROWSET függvény végrehajtásához.ADMINISTER DATABASE BULK OPERATIONS
– lehetővé teszi az adatbázishoz tartozó felhasználó számára az OPENROWSET függvény végrehajtását.
REFERENCES DATABASE SCOPED CREDENTIAL
a következőben hivatkozottEXTERNAL DATA SOURCE
hitelesítő adatokra: .
KÜLSŐ TÁBLA
A táblázat olvasására jogosult felhasználó az Azure Storage-mappák és -fájlok készletén létrehozott KÜLSŐ TÁBLA használatával érheti el a külső fájlokat.
A külső tábla létrehozására jogosult felhasználó (például CREATE TABLE és ALTER ANY CREDENTIAL vagy REFERENCES DATABA Standard kiadás SCOPED CREDENTIAL) az alábbi szkripttel hozhat létre egy táblát az Azure Storage-adatforrás tetején:
CREATE EXTERNAL TABLE [dbo].[DimProductexternal]
( ProductKey int, ProductLabel nvarchar, ProductName nvarchar )
WITH
(
LOCATION='/DimProduct/year=*/month=*' ,
DATA_SOURCE = AzureDataLakeStore ,
FILE_FORMAT = TextFileFormat
) ;
A táblából adatokat olvasó felhasználónak hozzá kell tudnia férni a fájlokhoz. A felhasználókat SAS-jogkivonattal vagy a munkaterület felügyelt identitásával kell megszemélyesíteni, ha nem tudnak közvetlenül hozzáférni a fájlokhoz a Microsoft Entra-identitásukkal vagy névtelen hozzáférésükkel.
A DATABA Standard kiadás SCOPED CREDENTIAL a hivatkozott adatforrás fájljainak elérését határozza meg. A CONTROL DATABA Standard kiadás engedéllyel rendelkező felhasználónak létre kell hoznia a DATABA Standard kiadás SCOPED CREDENTIAL-t, amely a tárolóhoz és a külső adatforráshoz való hozzáféréshez lesz használva, amely megadja az adatforrás ÉS a hitelesítő adatok URL-címét, amelyet használni kell:
EXECUTE AS somepoweruser;
-- Create MASTER KEY if it doesn't exists in database
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some very strong password';
CREATE DATABASE SCOPED CREDENTIAL cred
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '******srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=201********' ;
CREATE EXTERNAL DATA SOURCE AzureDataLakeStore
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>' ,
CREDENTIAL = cred
) ;
Külső fájlok olvasása KÜLSŐ TÁBLÁZATtal
A KÜLSŐ TÁBLA lehetővé teszi az adatforráson keresztül hivatkozott fájlokból származó adatok olvasását standard SQL Standard kiadás LECT utasítás használatával:
SELECT *
FROM dbo.DimProductsExternal
A hívónak a következő engedélyekkel kell rendelkeznie az adatok olvasásához:
SELECT
engedély a külső táblánREFERENCES DATABASE SCOPED CREDENTIAL
engedély, haDATA SOURCE
rendelkezikCREDENTIAL
Permissions
Az alábbi táblázat a fent felsorolt műveletekhez szükséges engedélyeket sorolja fel.
Query | Szükséges engedélyek |
---|---|
OPENROW Standard kiadás T(BULK) adatforrás nélkül | ADMINISTER BULK OPERATIONS , ADMINISTER DATABASE BULK OPERATIONS vagy az SQL-bejelentkezéshez HIVATKOZÓ HITELESÍTŐ ADATOKnak::<AZ SAS által védett tároló URL-címének> kell lennie |
OPENROW Standard kiadás T(BULK) hitelesítő adatok nélküli adatforrással | ADMINISTER BULK OPERATIONS vagy ADMINISTER DATABASE BULK OPERATIONS , |
OPENROW Standard kiadás T(BULK) hitelesítő adatokkal rendelkező adatforrással | REFERENCES DATABASE SCOPED CREDENTIAL és egy vagy több ADMINISTER BULK OPERATIONS ADMINISTER DATABASE BULK OPERATIONS |
CREATE EXTERNAL DATA SOURCE | ALTER ANY EXTERNAL DATA SOURCE és REFERENCES DATABASE SCOPED CREDENTIAL |
KÜLSŐ TÁBLA LÉTREHOZÁSA | CREATE TABLE , ALTER ANY SCHEMA , ALTER ANY EXTERNAL FILE FORMAT és ALTER ANY EXTERNAL DATA SOURCE |
STANDARD KIADÁS LECT FROM EXTERNAL TABLE | SELECT TABLE és REFERENCES DATABASE SCOPED CREDENTIAL |
CETAS | Tábla létrehozása – CREATE TABLE , ALTER ANY SCHEMA , ALTER ANY DATA SOURCE és ALTER ANY EXTERNAL FILE FORMAT . Adatok olvasása: ADMINISTER BULK OPERATIONS vagy REFERENCES CREDENTIAL SELECT TABLE minden tábla/nézet/függvény alapján a lekérdezésben + R/W engedély a tárterületen |
Következő lépések
Most már készen áll a következő Útmutató cikkek folytatására: