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.
Platí pro:Azure SQL Database
Azure SQL Managed Instance
SQL database ve Fabric
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 instanci, kde vytvoříte událostní relaci.
- 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.
Použijte účet, který:
-
Standard general-purpose v2Je 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
Hotblob. - Je ve stejné oblasti Azure jako databáze Azure SQL, elastický fond, kapacita Fabricu nebo spravovaná instance SQL.
- Nemá povolený hierarchický obor názvů.
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.
Nejprve udělte přístup 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.
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.
V Azure SQL Database a databázi SQL v Microsoft Fabric vytvořte přihlašovací údaje s oborem databáze. Pomocí klientského nástroje, jako je SSMS, 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
masterdatabázi.Note
Spuštění následující dávky T-SQL vyžaduje
CONTROLoprávnění k databázi. Ve výchozím nastavení náleží oprávnění vlastníkovi databáze (dbo), členům databázové roledb_ownera správci logického serveru./* (Re-)create a database scoped credential if needed. */ 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 name of the credential must match the URL of the blob container. 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.
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.
Important
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, 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
masterdatabázi.Note
Spuštění následující dávky T-SQL vyžaduje
CONTROLoprávnění k databázi. Ve výchozím nastavení je oprávnění drženo vlastníkem databáze (dbo), členy databázové roledb_ownera 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 if needed. */ 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 name of the credential must match the URL of the blob container. The secret is the SAS token for the container. */ 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. -
SECRETV 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í. Viz Oprávnění pro konkrétní potřebná oprávnění.
V sadě SQL Server Management Studio (SSMS) se připojte k logickému serveru Azure SQL Database.
Rozbalte uzel Rozšířené události ve složce Správa .
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, což bude
example-sessionpro následující vzorový kód.Na stránce Události vyberte jednu nebo více událostí, které chcete přidat do relace. V tomto příkladu
sql_batch_startingjsme vybrali událost.Na stránce Úložiště dat vyberte
event_filejako cílový typ.- Pro místní soubor událostí vyberte cíl místního souboru.
- V případě objektu blob souboru události uloženého ve službě Azure Storage 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). Například:https://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel.
Na stránce Úložiště dat vyberte
event_filejako 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 jeexample-session.xelnázev objektu blob a celá adresa URL jehttps://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel.Note
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.
Jak se spouštějí dávky T-SQL, relace zapisuje události do blobu example-session.xel 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.
Řešení potíží s relacemi událostí s cílem event_file ve službě Azure Storage
Následující seznam obsahuje chyby, se kterými se můžete setkat při spuštění rozšířené relace událostí, která používá Azure Storage, s možnými vysvětleními chyby.
-
Operační systém vrátil chybu 5: Přístup byl odepřen.
- Pokud používáte ověřování spravované identity:
- Spravovaná identita používaná databázovým strojem nemá požadované přiřazení role RBAC. Další informace najdete v tématu Udělení přístupu pomocí spravované identity.
- Je povolená brána firewall účtu úložiště a výjimka, která umožňuje důvěryhodným službám Azure přístup k účtu úložiště, ale
Microsoft.Sql/serversinstance prostředku logického serveru se nepřidá do seznamu instancí prostředků, kterým je udělen přístup. Další informace najdete v tématu Udělení přístupu z instancí prostředků Azure. - Pokud používáte perimetr zabezpečení sítě s vynuceným režimem, databáze a účet úložiště nejsou ve stejném perimetru.
- Pokud používáte ověřování pomocí tokenu SAS:
- Účet úložiště má povolenou bránu firewall. To se nepodporuje u relací událostí, které používají ověřování tokenu SAS.
- Token SAS nemá dostatečná oprávnění nebo vypršela jeho platnost. Další informace najdete v tématu Udělení přístupu pomocí tokenu SAS.
- Pokud používáte hraniční síť s vynuceným režimem zabezpečení sítě, pravidla přístupu, která umožňují neomezenou odchozí komunikaci z databáze a neomezenou příchozí komunikaci s účtem úložiště nejsou na místě.
- Pokud používáte ověřování spravované identity:
-
Operační systém vrátil chybu 86: Zadané síťové heslo není správné.
- Neexistují žádné přihlašovací údaje s oborem databáze (pro Azure SQL Database) ani přihlašovací údaje s oborem serveru (pro spravovanou instanci Azure SQL nebo SQL Server) s názvem odpovídajícím adrese URL kontejneru objektů blob. Další informace najdete v příkladech udělení přístupu pomocí spravované identity nebo udělení přístupu pomocí tokenu SAS.
- Název přihlašovacích údajů končí lomítkem (
/). Název přihlašovacích údajů by měl končit názvem kontejneru, který neobsahuje koncové lomítko.
-
Operační systém vrátil chybu 3: Systém nemůže najít zadanou cestu.
- Kontejner zadaný v adrese URL kontejneru objektů blob neexistuje.
-
Operační systém vrátil chybu 13: Data jsou neplatná.
- V blob kontejneru je zásada neměnnosti. Neměnné úložiště není pro relace událostí podporováno.
- Účet úložiště má povolený hierarchický obor názvů. Pro relace událostí se nepodporují účty úložiště s povoleným hierarchickým oborem názvů.
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žívání prohlížeče událostí v nástroji SSMS naleznete v tématu Zobrazení dat událostí v aplikaci SQL Server Management Studio.
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 instanci, která se liší od té, ve které byla relace událostí vytvořena, musíte na úložišti dat událostí udělit databázovému stroji přístup k úložnému kontejneru. Viz Udělení přístupu pomocí spravované identity nebo udělení přístupu pomocí tokenu SAS.
Podrobnější návod najdete v tématu Vytvoření relace 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 soubory xel přímo z Azure Storage kontejneru pro každou relaci. 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í.
Související obsah
- Rozšířené události v Azure SQL
- přehled rozšířených událostí
- cíl event_file
- VYTVOŘENÍ RELACE UDÁLOSTÍ (Transact-SQL)
- Vytvořit přihlašovací údaje k databázi (Transact-SQL)
- VYTVOŘIT PŘIHLAŠOVACÍ ÚDAJE (Transact-SQL)