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.
Tento článek popisuje a uvádí příklady mechanismů zabezpečeného ověřování pro příkaz COPY. Příkaz COPY je nejflexibilnější a nejbezpečnější způsob hromadného načítání dat ve službě Synapse SQL.
Podporované mechanismy ověřování
Následující matice popisuje podporované metody ověřování pro každý typ souboru a účet úložiště. Tyto informace platí pro umístění zdrojového úložiště a umístění chybového souboru.
| formát CSV | Parquet | ORC | |
|---|---|---|---|
| Azure Blob Storage | SAS, MSI, HLAVNÍ SLUŽBA, INSTANČNÍ OBJEKT, KLÍČ, AAD | SAS/KEY | SAS/KEY |
| Azure Data Lake Gen2 | SAS, MSI, SERVICE PRINCIPAL, KLÍČ, AAD | SAS (blob1)/MSI (dfs2)/SERVICE PRINCIPAL/KEY/AAD | SAS (blob1)/MSI (dfs2)/Služební Princip/Klíč/AAD |
1: Pro autentizaci touto metodou je ve vaší cestě k externímu umístění vyžadován koncový bod .blob (.blob.core.windows.net).
Pro tuto metodu ověřování je vyžadován koncový bod .dfs (.dfs.core.windows.net) ve vaší cestě k externí lokalitě.
A. Klíč účtu úložiště s LF jako ukončovacím znakem řádku (nový řádek ve stylu Unixu)
--Note when specifying the column list, input field numbers start from 1
COPY INTO target_table (Col_one default 'myStringDefault' 1, Col_two default 1 3)
FROM 'https://adlsgen2account.dfs.core.windows.net/myblobcontainer/folder1/'
WITH (
FILE_TYPE = 'CSV'
,CREDENTIAL=(IDENTITY= 'Storage Account Key', SECRET='<Your_Account_Key>')
--CREDENTIAL should look something like this:
--CREDENTIAL=(IDENTITY= 'Storage Account Key', SECRET='<secret>'),
,ROWTERMINATOR='0x0A' --0x0A specifies to use the Line Feed character (Unix based systems)
)
Important
- Pomocí šestnáctkové hodnoty (0x0A) zadejte znak nového řádku. Všimněte si, že příkaz COPY interpretuje
\nřetězec jako\r\n(začátek řádku return newline).
B. Sdílené přístupové podpisy (SAS) s CRLF jako ukončovacím znakem řádku (nový řádek stylu Windows)
COPY INTO target_table
FROM 'https://adlsgen2account.dfs.core.windows.net/myblobcontainer/folder1/'
WITH (
FILE_TYPE = 'CSV'
,CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='<Your_SAS_Token>')
--CREDENTIAL should look something like this:
--CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='?sv=2018-03-28&ss=bfqt&srt=sco&sp=rl&st=2016-10-17T20%3A14%3A55Z&se=2021-10-18T20%3A19%3A00Z&sig=IEoOdmeYnE9%2FKiJDSFSYsz4AkN'),
,ROWTERMINATOR='\n'-- COPY command automatically prefixes the \r character when \n (newline) is specified. This results in carriage return newline (\r\n) for Windows based systems.
)
Important
Nezadávejte ROWTERMINATOR jako '\r\n', které se interpretuje jako '\r\r\n' a může vést k problémům s parsováním. Příkaz COPY automaticky předponuje znak \r při specifikaci \n (nový řádek). Výsledkem je návrat na nový řádek (\r\n) v systémech založených na Windows.
C. Spravovaná identita
Ověřování spravované identity se vyžaduje, když je váš účet úložiště připojený k virtuální síti.
Prerequisites
- Nainstalujte Azure PowerShell. Přečtěte si instalacePowerShellu.
- Pokud máte účet úložiště pro obecné účely v1 nebo úložiště objektů blob, musíte nejprve upgradovat na verzi 2 pro obecné účely. Odkaz na povýšení na účet úložiště pro obecné účely verze 2
- Musíte mít zapnutou možnost Povolit důvěryhodným službám Microsoftu přístup k tomuto účtu úložiště v nabídce nastavení Brány firewall a Virtuální sítě účtu služby Azure Storage. Viz Konfigurace bran firewall služby Azure Storage a virtuálních sítí.
Steps
Pokud máte samostatný vyhrazený fond SQL, pomocí PowerShellu zaregistrujte sql server pomocí Microsoft Entra ID:
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentityTento krok není nutný pro vyhrazené fondy SQL v pracovním prostoru Synapse. Spravovaná identita přiřazená systémem (SA-MI) pracovního prostoru je členem role Správce Synapse a má tak zvýšená oprávnění k vyhrazeným fondům SQL pracovního prostoru.
Vytvořte účet úložiště pro obecné účely verze 2. Další informace najdete v článku o vytvoření účtu úložiště.
Note
- Pokud máte účet úložiště verze 1 pro obecné účely nebo úložiště objektů blob, musíte nejprve upgradovat na verzi 2. Další informace najdete v tématu Upgrade na účet úložiště pro obecné účely verze 2.
- Známé problémy se službou Azure Data Lake Storage Gen2 najdete v tématu Známé problémy se službou Azure Data Lake Storage Gen2.
V účtu úložiště vyberte Řízení přístupu (IAM).
Výběrem Přidat>Přidat přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Setting Value Role Přispěvatel dat služby Storage Blob Přiřadit přístup k SERVICEPRINCIPAL Members Server nebo pracovní prostor hostující vyhrazený fond SQL, který je zaregistrovaný s ID Microsoft Entra
Note
Tento krok můžou provádět pouze členové s oprávněním vlastníka. Informace o různých předdefinovaných rolích Azure najdete v předdefinovaných rolích Azure.
Important
Určete roli Azure pro úložištědat objektů blob, vlastníka, přispěvatele nebo čtenáře. Tyto role se liší od předdefinovaných rolí Vlastník, Přispěvatel a Čtenář v Azure.
Teď můžete spustit příkaz COPY, který určuje spravovanou identitu:
COPY INTO dbo.target_table FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/*.txt' WITH ( FILE_TYPE = 'CSV', CREDENTIAL = (IDENTITY = 'Managed Identity'), )
D. Ověřovací systém Microsoft Entra
Steps
V účtu úložiště vyberte Řízení přístupu (IAM).
Výběrem Přidat>Přidat přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Setting Value Role Vlastník dat úložiště blob, spolupracovník nebo čtenář Přiřadit přístup k USER Members Uživatel Microsoft Entra
Important
Zadejte roli Azure Vlastníka úložiště objektů blob, Přispěvatele nebo Čtenáře. Tyto role se liší od předdefinovaných rolí Vlastník, Přispěvatel a Čtenář v Azure.
Nakonfigurujte ověřování Microsoft Entra. Informace o konfiguraci a správě ověřování Microsoft Entra pomocí Azure SQL
Připojte se ke svému fondu SQL pomocí služby Active Directory, kde teď můžete spustit příkaz COPY bez zadání jakýchkoli přihlašovacích údajů:
COPY INTO dbo.target_table FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder1/*.txt' WITH ( FILE_TYPE = 'CSV' )
E. Ověřování objektu Service Principal
Steps
Vytvořte aplikaci Microsoft Entra.
Přiřaďte oprávnění ke čtení, zápisu a provádění vaší aplikaci Microsoft Entra ve vašem účtu úložiště.
Teď můžete spustit příkaz COPY:
COPY INTO dbo.target_table FROM 'https://myaccount.blob.core.windows.net/myblobcontainer/folder0/*.txt' WITH ( FILE_TYPE = 'CSV' ,CREDENTIAL=(IDENTITY= '<application_ID>@<OAuth_2.0_Token_EndPoint>' , SECRET= '<authentication_key>') --CREDENTIAL should look something like this: --,CREDENTIAL=(IDENTITY= '92761aac-12a9-4ec3-89b8-7149aef4c35b@https://login.microsoftonline.com/72f714bf-86f1-41af-91ab-2d7cd011db47/oauth2/token', SECRET='juXi12sZ6gse]woKQNgqwSywYv]7A.M') )
Important
Použití verze V1 koncového bodu tokenu OAuth 2.0
Další kroky
- Podrobné syntaxe najdete v článku o příkazu COPY .
- Informace o osvědčených postupech načítání dat najdete v článku s přehledem načítání dat .