Sdílet prostřednictvím


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:

  1. Vytvořte účet Azure Storage nebo vyhledejte existující vhodný účet, který se má použít.
  2. V tomto účtu úložiště vytvořte kontejner.
  3. Udělte databázovému stroji požadovaný přístup ke kontejneru pomocí přiřazení role RBAC nebo tokenu SAS.
  4. Vytvořte přihlašovací údaje v databázi nebo spravované instanci, kde vytvoříte relaci události.
  5. 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í.
  • 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

  1. 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.

  2. 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.

  3. 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), členy db_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.

Udělení přístupu pomocí tokenu SAS

  1. 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.

    Snímek obrazovky Se sdílenými přístupovými tokeny pro kontejner Azure Storage s vygenerovaným tokenem SAS pro ukázkový kontejner

  2. 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), členy db_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.

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.

Snímek obrazovky s dialogovým oknem Nová relace SSMS zobrazující stránku výběru události s vybranou událostí sql_batch_starting

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.xelná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.

Snímek obrazovky s dialogovým oknem Nová relace SSMS zobrazující stránku pro výběr datového úložiště s vybranou event_file cílem a zadaná adresa URL úložiště

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.