Vytvoření relace události s cílem event_file ve službě Azure Storage
Platí pro: Azure SQL Database Azure SQL Managed Instance
Základní kroky v tomto názorném postupu jsou:
- Vytvořte účet Azure Storage nebo vyhledejte existující vhodný účet, který se má použít.
- V tomto účtu úložiště vytvořte kontejner.
- Udělte databázovému stroji požadovaný přístup ke kontejneru pomocí přiřazení role RBAC nebo tokenu SAS.
- Vytvořte přihlašovací údaje v databázi nebo spravované instanci, kde vytvoříte relaci události.
- Vytvořte, spusťte a použijte relaci události.
Vytvoření účtu úložiště a kontejneru
Podrobný popis vytvoření účtu úložiště ve službě Azure Storage najdete v tématu Vytvoření účtu úložiště. Naučíte se vytvořit účet úložiště pomocí webu Azure Portal, PowerShellu, Azure SQL, šablony ARM nebo šablony Bicep.
Doporučujeme použít účet, který:
Standard general-purpose v2
Je to účet.- Má svůj typ redundance odpovídající redundanci databáze Azure SQL, elastického fondu nebo spravované instance, kde se vytvářejí relace událostí.
- Pro místně redundantní prostředky Azure SQL použijte LRS, GRS nebo RA-GRS. Pro zónově redundantní prostředky Azure SQL použijte ZRS, GZRS nebo RA-GZRS. Další informace najdete v článku Možnosti redundance Azure Storage.
- Používá úroveň přístupu k objektům
Hot
blob. - Je ve stejné oblasti Azure jako databáze Azure SQL, elastický fond nebo spravovaná instance.
Dále vytvořte kontejner v tomto účtu úložiště pomocí webu Azure Portal. Kontejner můžete vytvořit také pomocí PowerShellu nebo pomocí Azure CLI.
Poznamenejte si názvy účtu úložiště a kontejneru, který jste vytvořili. Použijete je v následujících krocích.
Udělení přístupu ke kontejneru
Ke čtení a zápisu dat událostí vyžaduje databázový stroj konkrétní přístup ke kontejneru. Tento přístup můžete udělit jedním ze dvou způsobů v závislosti na zvoleném typu ověřování:
Pokud používáte spravovanou identitu s ověřováním Microsoft Entra, přiřadíte roli RBAC přispěvatele dat objektů blob služby Storage pro kontejner ke spravované identitě logického serveru Azure SQL nebo spravované instance Azure SQL.
Poznámka:
Použití spravované identity s rozšířenými relacemi událostí je ve verzi Preview.
Pokud používáte ověřování založené na tajných klíčích, vytvoříte token SAS pro kontejner.
Pokud chcete použít tento typ ověřování, musí být povolená možnost Povolit přístup k klíči účtu úložiště. Další informace najdete v tématu Zabránění autorizaci sdíleného klíče pro účet Azure Storage.
Udělení přístupu pomocí spravované identity
Na webu Azure Portal přejděte na stránku Identita vašeho logického serveru Azure SQL nebo spravované instance Azure SQL a ujistěte se, že je přiřazená spravovaná identita. Další informace najdete v tématu Spravované identity v Microsoft Entra pro Azure SQL.
Na webu Azure Portal přejděte do kontejneru úložiště, do kterého chcete ukládat data událostí. Na stránce Řízení přístupu (IAM) vyberte Přidat a přiřaďte roli RBAC přispěvatele dat objektů blob úložiště ke spravované identitě logického serveru nebo spravované instance SQL.
Pokud má logický server nebo spravovaná instance SQL povolenou spravovanou identitu přiřazenou systémem, přiřaďte k této identitě roli. Pokud je identita přiřazená systémem zakázaná, ale existuje jedna nebo více identit přiřazených uživatelem, přiřaďte roli identitě přiřazené uživatelem označenou jako primární identita.
Další informace najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.
Vytvořte přihlašovací údaje pro pokyn databázovému stroji, aby se ověřil ve službě Azure Storage pomocí spravované identity pro konkrétní adresu URL kontejneru.
Vytvořte přihlašovací údaje s oborem databáze. Pomocí klientského nástroje, jako je SSMS nebo ADS, otevřete nové okno dotazu, připojte se k databázi, ve které vytvoříte relaci události, a vložte následující dávku T-SQL. Ujistěte se, že jste připojení k uživatelské databázi, a ne k
master
databázi.Poznámka:
Spuštění následující dávky T-SQL vyžaduje
CONTROL
oprávnění k databázi, která je uložena vlastníkem databáze (dbo
), členydb_owner
role databáze a správcem logického serveru./* (Re-)create a database scoped credential. The name of the credential must match the URL of the blob container. */ IF EXISTS ( SELECT 1 FROM sys.database_credentials WHERE name = 'https://<storage-account-name>.blob.core.windows.net/<container-name>' ) DROP DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>]; /* When using managed identity, the credential does not contain a secret */ CREATE DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>] WITH IDENTITY = 'MANAGED IDENTITY';
Před provedením této dávky proveďte následující změnu:
- Ve všech třech výskytech
https://<storage-account-name>.blob.core.windows.net/<container-name>
nahraďte<storage-account-name>
názvem vašeho účtu úložiště a nahraďte<container-name>
názvem kontejneru.
- Ve všech třech výskytech
Udělení přístupu pomocí tokenu SAS
Na webu Azure Portal přejděte do účtu úložiště a kontejneru, který jste vytvořili. Vyberte kontejner a přejděte na Nastavení > sdílených přístupových tokenů.
Token SAS musí splňovat následující požadavky:
- Oprávnění nastavená na
Read
,Write
,Delete
,List
. - Čas zahájení a doba vypršení platnosti musí zahrnovat dobu životnosti relace události. Token SAS, který vytvoříte, funguje pouze v tomto časovém intervalu.
- Nemá žádná omezení IP adres.
Vyberte tlačítko Generovat token SAS a adresu URL. Token SAS je v poli Token SAS objektu blob. Můžete ho zkopírovat, abyste ho mohli použít v dalším kroku.
Důležité
Token SAS poskytuje přístup pro čtení a zápis k tomuto kontejneru. Zacházejte s ním stejně jako s heslem nebo s jakýmkoli jiným tajným kódem.
- Oprávnění nastavená na
Vytvořte přihlašovací údaje pro uložení tokenu SAS.
Uložte token SAS do přihlašovacích údajů v oboru databáze. Pomocí klientského nástroje, jako je SSMS nebo ADS, otevřete nové okno dotazu, připojte se k databázi, ve které vytvoříte relaci události, a vložte následující dávku T-SQL. Ujistěte se, že jste připojení k uživatelské databázi, a ne k
master
databázi.Poznámka:
Spuštění následující dávky T-SQL vyžaduje
CONTROL
oprávnění k databázi, která je uložena vlastníkem databáze (dbo
), členydb_owner
role databáze a správcem logického serveru./* Create a master key to protect the secret of the credential */ IF NOT EXISTS ( SELECT 1 FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##' ) CREATE MASTER KEY; /* (Re-)create a database scoped credential. The name of the credential must match the URL of the blob container. */ IF EXISTS ( SELECT 1 FROM sys.database_credentials WHERE name = 'https://<storage-account-name>.blob.core.windows.net/<container-name>' ) DROP DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>]; /* The secret is the SAS token for the container. The Read, Write, and List permissions are set. */ CREATE DATABASE SCOPED CREDENTIAL [https://<storage-account-name>.blob.core.windows.net/<container-name>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<sas-token>';
Před provedením této dávky proveďte následující změny:
- Ve všech třech výskytech
https://<storage-account-name>.blob.core.windows.net/<container-name>
nahraďte<storage-account-name>
názvem vašeho účtu úložiště a nahraďte<container-name>
názvem kontejneru. SECRET
V klauzuli nahraďte<sas-token>
tokenem SAS, který jste zkopírovali v předchozím kroku.
- Ve všech třech výskytech
Vytvoření, spuštění a zastavení relace události
Po vytvoření přihlašovacích údajů můžete vytvořit relaci události. Na rozdíl od vytváření přihlašovacích údajů nevyžaduje CONTROL
vytvoření relace událostí oprávnění. Po vytvoření přihlašovacích údajů můžete vytvořit relace událostí, i když máte více omezených oprávnění. Podívejte se na oprávnění pro potřebná konkrétní oprávnění.
Pokud chcete vytvořit novou relaci událostí v nástroji SSMS, rozbalte uzel Rozšířené události . Tento uzel je ve složce databáze ve službě Azure SQL Database a ve složce Správa ve službě Azure SQL Managed Instance. Klikněte pravým tlačítkem myši na složku Relace a vyberte Možnost Nová relace.... Na stránce Obecné zadejte název relace, která je example-session
v tomto příkladu. Na stránce Události vyberte jednu nebo více událostí, které chcete přidat do relace. V tomto příkladu sql_batch_starting
jsme vybrali událost.
Na stránce Úložiště dat vyberte event_file
jako cílový typ a vložte adresu URL kontejneru úložiště do pole Adresa URL úložiště. Na konec této adresy URL zadejte lomítko (/
) následované názvem souboru (objekt blob). V našem příkladu je example-session.xel
název objektu blob a celá adresa URL je https://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel
.
Poznámka:
Pro službu SQL Managed Instance místo vložení adresy URL kontejneru úložiště na stránce Úložiště dat použijte tlačítko Skript k vytvoření skriptu T-SQL relace. Zadejte adresu URL kontejneru jako hodnotu argumentu filename
, podobně jako v příkladu spravované instance SQL níže, a spusťte skript pro vytvoření relace.
Teď, když je relace nakonfigurovaná, můžete výběrem tlačítka Skript vytvořit skript T-SQL relace a uložit ho pro pozdější použití. Tady je skript pro naši ukázkovou relaci:
CREATE EVENT SESSION [example-session] ON DATABASE
ADD EVENT sqlserver.sql_batch_starting
ADD TARGET package0.event_file(SET filename=N'https://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel')
GO
Vyberte OK a vytvořte relaci.
V Průzkumník objektů rozbalte složku Relace a zobrazte relaci události, kterou jste vytvořili. Ve výchozím nastavení se relace při vytváření nespusťe. Relaci spustíte tak, že kliknete pravým tlačítkem myši na název relace a vyberete Spustit relaci. Později ji můžete zastavit tak, že po spuštění relace vyberete možnost Zastavit relaci.
Při spouštění dávek T-SQL v této databázi nebo spravované instanci relace zapisuje události do objektu example-session.xel
blob v kontejneru úložiště.
Pokud chcete relaci zastavit, klikněte na ni pravým tlačítkem v Průzkumník objektů a vyberte Zastavit relaci.
Zobrazení dat události
Data událostí můžete zobrazit v uživatelském rozhraní prohlížeče událostí aplikace SQL Server Management Studio (SSMS), kde můžete k analýze zachycených dat použít filtry a agregace. Další informace o použití prohlížeče událostí v nástroji SSMS najdete v tématu Zobrazení dat událostí v nástroji SSMS.
Stažení souborů xel ze služby Azure Storage
Tip
Pokud používáte SSMS verze 19.2 nebo novější, nemusíte stahovat xel
soubory, jak je popsáno v této části. V těchto verzích SSMS čte xel
soubory pro každou relaci přímo z úložiště Azure. Další informace najdete v blogovém příspěvku o vylepšení rozšířených událostí Azure SQL .
xel
Stáhněte objekt blob pro relaci z kontejneru úložiště a uložte ho jako místní soubor. Na webu Azure Portal vyhledejte použitý účet úložiště, v části Úložiště dat vyberte Kontejnery a vyberte kontejner, který jste vytvořili pro relaci událostí. Objekt blob relace má název relace jako první část jejího názvu s číselnou příponou. Výběrem tří teček (...) zobrazte místní nabídku objektu blob a vyberte Stáhnout.
Můžete nainstalovat Průzkumník služby Azure Storage a stáhnout několik xel
objektů blob v jedné operaci.
Jakmile se xel
soubor stáhne, otevřete ho v aplikaci SSMS. V hlavní nabídce SSMS přejděte na Soubor a vyberte Otevřít. Pokud máte jeden xel
soubor, vyberte Soubor... a přejděte na stažený soubor. Pokud máte více xel
souborů vygenerovaných stejnou relací událostí (označuje se jako soubory vrácení), můžete použít dialogové okno Sloučit rozšířené soubory událostí... a otevřít je všechny v prohlížeči událostí.
Zobrazení dat událostí pomocí T-SQL
Pokud chcete číst data relace událostí pomocí T-SQL, použijte funkci sys.fn_xe_file_target_read_file(). Pokud chcete tuto funkci použít v databázi nebo spravované instanci, která se liší od té, ve které je relace událostí vytvořená, udělte přístup k databázovému stroji v kontejneru úložiště pomocí objektů blob dat událostí.
Podrobnější návod najdete v tématu Vytvoření relace událostí v nástroji SSMS.