Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:Azure SQL Database
Azure SQL Managed Instance
SQL database di Fabric
Langkah-langkah tingkat tinggi dalam panduan ini adalah:
- Buat akun Azure Storage, atau temukan akun yang sesuai untuk digunakan.
- Buat kontainer di akun penyimpanan ini.
- Berikan Mesin Database akses yang diperlukan ke kontainer menggunakan penetapan peran RBAC, atau token SAS.
- Buat kredensial di database atau instans tempat Anda membuat sesi peristiwa.
- Membuat, memulai, dan menggunakan sesi peristiwa.
Membuat kontainer dan akun Azure Storage
Untuk deskripsi terperinci tentang cara membuat akun penyimpanan di Azure Storage, lihat Membuat akun penyimpanan. Anda mempelajari cara membuat akun penyimpanan menggunakan portal Azure, PowerShell, Azure SQL, templat ARM, atau templat Bicep.
Gunakan akun yang:
-
Standard general-purpose v2Adalah akun. - Memiliki jenis redundansi yang cocok dengan redundansi database Azure SQL, kumpulan elastis, atau instans terkelola tempat sesi peristiwa dibuat.
- Untuk sumber daya Azure SQL yang berlebihan secara lokal, gunakan LRS, GRS, atau RA-GRS. Untuk sumber daya Azure SQL zona-redundan , gunakan ZRS, GZRS, atau RA-GZRS. Untuk informasi lebih lanjut, lihat Redundansi Azure Storage.
-
HotMenggunakan tingkat akses blob. - Berada di wilayah Azure yang sama dengan database Azure SQL, elastic pool, kapasitas Fabric, atau instans terkelola SQL.
- Namespace hierarkis belum diaktifkan.
Selanjutnya, buat kontainer di akun penyimpanan ini menggunakan portal Azure. Anda juga dapat membuat kontainer menggunakan PowerShell, atau menggunakan Azure CLI.
Perhatikan nama akun penyimpanan dan kontainer yang Anda buat. Anda akan menggunakannya dalam langkah-langkah berikut.
Pertama, berikan akses ke kontainer. Untuk membaca dan menulis data peristiwa, Mesin Database memerlukan akses khusus ke kontainer. Anda dapat memberikan akses ini dengan salah satu dari dua cara, tergantung pada pilihan jenis autentikasi Anda:
Jika menggunakan identitas terkelola dengan autentikasi Microsoft Entra, Anda menetapkan peran RBAC Kontributor Data Blob Penyimpanan untuk kontainer ke identitas terkelola server logis Azure SQL atau instans terkelola Azure SQL.
Jika menggunakan autentikasi berbasis rahasia, Anda membuat token SAS untuk kontainer.
Untuk menggunakan jenis autentikasi ini, opsi Izinkan akses kunci akun penyimpanan harus diaktifkan. Untuk informasi selengkapnya, lihat Mencegah otorisasi Kunci Bersama untuk akun Azure Storage.
Memberikan akses menggunakan identitas terkelola
Di portal Azure, navigasikan ke halaman Identitas server logis Azure SQL atau instans terkelola Azure SQL Anda, dan pastikan identitas terkelola ditetapkan. Untuk informasi selengkapnya, lihat Identitas terkelola di Microsoft Entra untuk Azure SQL.
Di portal Azure, navigasikan ke kontainer penyimpanan tempat Anda ingin menyimpan data peristiwa. Pada halaman Kontrol Akses (IAM), pilih Tambahkan untuk menetapkan peran RBAC Kontributor Data Blob Penyimpanan ke identitas terkelola server logis atau instans terkelola SQL.
Jika server logis atau instans terkelola SQL mengaktifkan identitas terkelola yang ditetapkan sistemnya, tetapkan peran ke identitas tersebut. Jika identitas yang ditetapkan sistem dinonaktifkan, tetapi ada satu atau beberapa identitas yang ditetapkan pengguna, tetapkan peran ke identitas yang ditetapkan pengguna yang ditetapkan sebagai identitas utama.
Untuk informasi selengkapnya, lihat Menetapkan peran Azure untuk akses ke data blob.
Buat kredensial untuk menginstruksikan Mesin Database untuk mengautentikasi ke Azure Storage menggunakan identitas terkelola untuk URL kontainer tertentu.
Pada Azure SQL Database dan Microsoft Fabric SQL Database, buat kredensial cakupan basis data. Menggunakan alat klien seperti SQL Server Management Studio, buka jendela kueri baru, sambungkan ke database tempat Anda membuat sesi peristiwa, dan tempelkan batch T-SQL berikut. Pastikan Anda tersambung ke database pengguna Anda, dan bukan ke
masterdatabase.Note
Menjalankan batch T-SQL berikut memerlukan
CONTROLizin database. Secara default, izin dipegang oleh pemilik database (dbo), oleh anggotadb_ownerperan database, dan oleh administrator server logis./* (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';
Sebelum menjalankan batch ini, lakukan perubahan berikut:
- Dalam ketiga kemunculan
https://<storage-account-name>.blob.core.windows.net/<container-name>, ganti<storage-account-name>dengan nama akun penyimpanan Anda, dan ganti<container-name>dengan nama kontainer Anda.
Memberikan akses menggunakan token SAS
Di portal Azure, navigasikan ke akun penyimpanan dan kontainer yang Anda buat. Pilih kontainer, dan navigasi ke Pengaturan > Token akses bersama.
Token SAS harus memenuhi persyaratan berikut:
-
Izin diatur ke
Read,Write,Delete,List. - Waktu mulai dan Waktu kedaluwarsa harus mencakup masa pakai sesi peristiwa. Token SAS yang Anda buat hanya berfungsi dalam interval waktu ini.
- Tidak memiliki batasan alamat IP.
Pilih tombol Buat token SAS dan URL. Token SAS ada di kotak token SAS Blob. Anda dapat menyalinnya untuk digunakan di langkah berikutnya.
Important
Token SAS menyediakan akses baca dan tulis ke kontainer ini. Perlakukan seperti yang Akan Anda perlakukan kata sandi atau rahasia lainnya.
-
Izin diatur ke
Buat kredensial untuk menyimpan token SAS.
Simpan token SAS dalam kredensial cakupan database. Menggunakan alat klien seperti SQL Server Management Studio, buka jendela kueri baru, sambungkan ke database tempat Anda membuat sesi peristiwa, dan tempelkan batch T-SQL berikut. Pastikan Anda tersambung ke database pengguna Anda, dan bukan ke
masterdatabase.Note
Menjalankan batch T-SQL berikut memerlukan
CONTROLizin database. Secara default, izin dipegang oleh pemilik database (dbo), oleh anggotadb_ownerperan database, dan oleh administrator server logis./* 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>';Sebelum menjalankan batch ini, buat perubahan berikut:
- Dalam ketiga kemunculan
https://<storage-account-name>.blob.core.windows.net/<container-name>, ganti<storage-account-name>dengan nama akun penyimpanan Anda, dan ganti<container-name>dengan nama kontainer Anda. -
SECRETDalam klausa, ganti<sas-token>dengan token SAS yang Anda salin di langkah sebelumnya.
- Dalam ketiga kemunculan
Membuat, memulai, dan menghentikan sesi peristiwa
Setelah kredensial dibuat, Anda dapat membuat sesi peristiwa. Tidak seperti membuat kredensial, membuat sesi peristiwa tidak memerlukan CONTROL izin. Setelah kredensial dibuat, Anda dapat membuat sesi peristiwa meskipun Anda memiliki izin yang lebih terbatas. Lihat Izin untuk izin tertentu yang diperlukan.
Di SQL Server Management Studio (SSMS), sambungkan ke server logis Azure SQL Database.
Perluas simpul Kejadian yang Diperluas di bawah folder Manajemen .
Klik kanan pada folder Sesi , dan pilih Sesi Baru....
Pada halaman Umum , masukkan nama untuk sesi, yang akan menjadi
example-sessionuntuk sampel kode berikut.Pada halaman Peristiwa , pilih satu atau beberapa peristiwa untuk ditambahkan ke sesi. Dalam contoh ini, kami memilih
sql_batch_startingperistiwa.Pada halaman Penyimpanan Data , pilih
event_filesebagai jenis target.- Untuk file peristiwa lokal, pilih target file lokal.
- Untuk blob file peristiwa yang disimpan di Azure Storage, tempelkan URL kontainer penyimpanan di kotak URL Penyimpanan . Ketik garis miring (
/) di akhir URL ini, diikuti dengan nama file (blob). Contohnya,https://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel.
Pada halaman Penyimpanan Data, pilih
event_filesebagai jenis target, dan tempelkan URL kontainer penyimpanan di kotak URL Penyimpanan. Ketik garis miring (/) di akhir URL ini, diikuti dengan nama file (blob). Dalam contoh kami, nama blob adalahexample-session.xel, dan seluruh URL adalahhttps://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel.Note
Untuk SQL Managed Instance, alih-alih menempelkan URL kontainer penyimpanan di halaman Penyimpanan data , gunakan tombol Skrip untuk membuat skrip T-SQL sesi. Tentukan URL kontainer sebagai nilai untuk
filenameargumen, mirip dengan contoh SQL Managed Instance di bawah ini, dan jalankan skrip untuk membuat sesi.Sekarang setelah sesi dikonfigurasi, Anda dapat memilih tombol Skrip untuk membuat skrip T-SQL sesi, untuk menyimpannya untuk nanti. Berikut adalah skrip untuk sesi contoh kami:
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
Pilih OK untuk membuat sesi.
Di Object Explorer, perluas folder Sesi untuk melihat sesi peristiwa yang Anda buat. Secara default, sesi tidak dimulai saat dibuat. Untuk memulai sesi, klik kanan pada nama sesi, dan pilih Mulai Sesi. Anda nantinya dapat menghentikannya dengan memilih Hentikan Sesi secara serupa, setelah sesi berjalan.
Saat batch T-SQL dijalankan, sesi menulis peristiwa ke example-session.xel blob dalam kontainer penyimpanan.
Untuk menghentikan sesi, klik kanan di Object Explorer, dan pilih Hentikan Sesi.
Memecahkan masalah sesi peristiwa dengan target event_file di Azure Storage
Daftar berikut berisi kesalahan yang mungkin Anda temui saat memulai sesi peristiwa yang diperluas yang menggunakan Azure Storage, dengan kemungkinan penjelasan untuk kesalahan tersebut.
-
Sistem operasi mengembalikan kesalahan 5: 'Akses ditolak.'
- Jika menggunakan autentikasi identitas terkelola:
- Identitas terkelola yang digunakan oleh mesin basis data tidak memiliki penetapan peran RBAC yang diperlukan. Untuk informasi selengkapnya, lihat Memberikan akses menggunakan identitas terkelola.
-
Firewall akun penyimpanan diaktifkan dan pengecualian untuk memungkinkan layanan Azure tepercaya mengakses akun penyimpanan juga diaktifkan, tetapi
Microsoft.Sql/serversinstans sumber daya untuk server logis belum ditambahkan ke daftar instans sumber daya yang diberikan akses. Untuk informasi selengkapnya, lihat Mengizinkan akses dari instans sumber daya Azure. - Jika menggunakan perimeter keamanan jaringan dengan mode yang diberlakukan, database dan akun penyimpanan tidak berada dalam perimeter yang sama.
- Jika menggunakan autentikasi token SAS:
- Firewall pada akun penyimpanan diaktifkan. Ini tidak didukung untuk sesi-peristiwa yang menggunakan autentikasi token SAS.
- Token SAS tidak memiliki izin yang memadai, atau telah kedaluwarsa. Untuk informasi selengkapnya, lihat Memberikan akses menggunakan token SAS.
- Jika menggunakan perimeter keamanan jaringan dengan mode yang diberlakukan, aturan akses untuk memungkinkan komunikasi keluar yang tidak dibatasi dari database dan komunikasi masuk yang tidak dibatasi ke akun penyimpanan tidak diberlakukan.
- Jika menggunakan autentikasi identitas terkelola:
-
Sistem operasi mengembalikan kesalahan 86: 'Kata sandi jaringan yang ditentukan tidak benar.'
- Tidak ada kredensial cakupan database (untuk Azure SQL Database) atau kredensial cakupan server (untuk Azure SQL Managed Instance atau SQL Server) dengan nama yang cocok dengan URL kontainer blob. Untuk informasi selengkapnya, lihat contoh untuk Memberikan akses menggunakan identitas terkelola atau Memberikan akses menggunakan token SAS.
- Nama kredensial berakhir dengan garis miring (
/). Nama kredensial harus diakhiri dengan nama kontainer tanpa menyertakan garis miring di belakangnya.
-
Sistem operasi mengembalikan kesalahan 3: 'Sistem tidak dapat menemukan jalur yang ditentukan.'
- Kontainer yang ditentukan dalam URL kontainer blob tidak ada.
-
Sistem operasi mengembalikan kesalahan 13: 'Data tidak valid.'
- Ada kebijakan kekekalan pada kontainer blob. Penyimpanan yang tidak dapat diubah tidak didukung untuk sesi acara.
- Akun penyimpanan telah diaktifkan namespace hierarkis. Akun penyimpanan yang mengaktifkan namespace hierarkis tidak didukung untuk sesi acara.
Menampilkan data peristiwa
Anda dapat melihat data peristiwa di antarmuka pengguna penampil peristiwa SQL Server Management Studio (SSMS), tempat Anda dapat menggunakan filter dan agregasi untuk menganalisis data yang Anda ambil. Untuk informasi selengkapnya tentang menggunakan penampil peristiwa di SQL Server Management Studio, lihat Menampilkan data peristiwa di SQL Server Management Studio.
Menampilkan data peristiwa menggunakan T-SQL
Untuk membaca data sesi peristiwa menggunakan T-SQL, gunakan fungsi sys.fn_xe_file_target_read_file(). Untuk menggunakan fungsi ini dalam database atau instans yang berbeda dari database atau instans tempat sesi peristiwa dibuat, Anda perlu memberikan akses pada Mesin Database ke kontainer penyimpanan yang berisi blob data peristiwa. Lihat Memberikan akses menggunakan identitas terkelola atau Memberikan akses menggunakan token SAS.
Untuk panduan yang lebih rinci, lihat Membuat sesi acara di SSMS.
Mengunduh file xel dari penyimpanan Azure
Tip
Jika Anda menggunakan SSMS v19.2 atau yang lebih baru, Anda tidak perlu mengunduh xel file seperti yang dijelaskan di bagian ini. Dalam versi ini, SSMS membaca xel file untuk setiap sesi langsung dari kontainer Azure Storage. Untuk informasi selengkapnya, lihat blog Meningkatkan Acara yang Diperluas di Azure SQL .
xel Unduh blob untuk sesi dari kontainer penyimpanan dan simpan sebagai file lokal. Di portal Azure, temukan akun penyimpanan yang Anda gunakan, pilih Kontainer di bawah Penyimpanan data, dan pilih kontainer yang Anda buat untuk sesi peristiwa Anda. Blob untuk sesi memiliki nama sesi sebagai bagian pertama dari namanya, dengan akhiran numerik. Pilih elipsis (...) untuk menampilkan menu konteks untuk blob, dan pilih Unduh.
Anda dapat menginstal Azure Storage Explorer untuk mengunduh beberapa xel blob dalam satu operasi.
xel Setelah file diunduh, buka di SSMS. Pada menu utama SSMS, buka File dan pilih Buka. Jika Anda memiliki satu xel file, pilih File... dan telusuri ke file yang Anda unduh. Jika Anda memiliki beberapa xel file yang dihasilkan oleh sesi peristiwa yang sama (dikenal sebagai file rollover), Anda dapat menggunakan dialog Gabungkan File Peristiwa yang Diperluas... untuk membuka semuanya di penampil peristiwa.