Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Fabric'te SQL Veritabanı
Bu kılavuzdaki üst düzey adımlar şunlardır:
- Bir Azure Depolama hesabı oluşturun veya kullanmak için mevcut uygun hesabı bulun.
- Bu depolama hesabında bir kapsayıcı oluşturun.
- Veritabanı Altyapısı'na RBAC rol ataması veya SAS belirteci kullanarak kapsayıcıya gerekli erişimi verin.
- Olay oturumunu oluşturduğunuz veritabanında veya örnekte bir kimlik bilgisi oluşturun.
- Olay oturumu oluşturma, başlatma ve kullanma.
Depolama hesabı ve kapsayıcı oluşturma
Azure Depolama'da depolama hesabı oluşturma hakkında ayrıntılı bir açıklama için bkz . Depolama hesabı oluşturma. Azure portalı, PowerShell, Azure SQL, ARM şablonu veya Bicep şablonu kullanarak depolama hesabı oluşturmayı öğrenirsiniz.
Şu hesapları kullanın:
- Bir
Standard general-purpose v2hesaptır. - Olay oturumlarının oluşturulduğu Azure SQL veritabanının, elastik havuzun veya yönetilen örneğin yedekliliğiyle eşleşen yedeklilik türüne sahiptir.
- Yerel olarak yedekli Azure SQL kaynakları için LRS, GRS veya RA-GRS kullanın. Alanlar arası yedekli Azure SQL kaynakları için ZRS, GZRS veya RA-GZRS kullanın. Daha fazla bilgi için bkz. Azure Depolama yedekliliği.
- Blob erişim katmanını
Hotkullanır. - Azure SQL veritabanı, elastik havuz, Kumaş kapasitesi veya SQL yönetilen örneğiyle aynı Azure bölgesindedir.
- Hiyerarşik ad alanı etkin değildir.
Ardından Azure portalını kullanarak bu depolama hesabında bir kapsayıcı oluşturun. PowerShell veya Azure CLI kullanarak da kapsayıcı oluşturabilirsiniz.
Oluşturduğunuz depolama hesabının ve kapsayıcının adlarını not edin. Bunları aşağıdaki adımlarda kullanacaksınız.
İlk olarak kapsayıcıya erişim izni verin. Veritabanı Altyapısı, olay verilerini okumak ve yazmak için kapsayıcıya özel erişim gerektirir. Bu erişimi, seçtiğiniz kimlik doğrulama türüne bağlı olarak iki yoldan biriyle vekleyebilirsiniz:
Microsoft Entra kimlik doğrulaması ile yönetilen kimlik kullanıyorsanız kapsayıcı için Depolama Blob Verileri Katkıda Bulunanı RBAC rolünü Azure SQL mantıksal sunucusunun veya Azure SQL yönetilen örneğinin yönetilen kimliğine atarsınız.
Gizli dizi tabanlı kimlik doğrulaması kullanıyorsanız kapsayıcı için bir SAS belirteci oluşturursunuz.
Bu kimlik doğrulama türünü kullanmak için Depolama hesabı anahtarı erişimine izin ver seçeneğinin etkinleştirilmesi gerekir. Daha fazla bilgi için bkz . Azure Depolama hesabı için Paylaşılan Anahtar yetkilendirmesini engelleme.
Yönetilen kimliği kullanarak erişim izni verme
Azure portalında Azure SQL mantıksal sunucunuzun veya Azure SQL yönetilen örneğinizin Kimlik sayfasına gidin ve yönetilen kimliğin atandığından emin olun. Daha fazla bilgi için bkz . Azure SQL için Microsoft Entra'da yönetilen kimlikler.
Azure portalında, olay verilerini depolamak istediğiniz depolama kapsayıcısına gidin. Erişim Denetimi (IAM) sayfasında Ekle'yi seçerek Depolama Blobu Veri Katkıda Bulunanı RBAC rolünü mantıksal sunucunun veya SQL yönetilen örneğinin yönetilen kimliğine atayın.
Mantıksal sunucuda veya SQL yönetilen örneğinde sistem tarafından atanmış yönetilen kimlik etkinleştirildiyse, rolü bu kimliğe atayın. Sistem tarafından atanan kimlik devre dışı bırakıldıysa ancak bir veya daha fazla kullanıcı tarafından atanan kimlik varsa, rolü birincil kimlik olarak atanan kullanıcı tarafından atanan kimliğe atayın.
Daha fazla bilgi için bkz. Blob verilerine erişmek için Azure rolü atama.
Veritabanı Altyapısı'na belirli bir kapsayıcı URL'si için yönetilen kimliği kullanarak Azure Depolama'da kimlik doğrulaması talimatı vermek için bir kimlik bilgisi oluşturun.
Microsoft Fabric'teki Azure SQL Veritabanı ve SQL veritabanı'nda veritabanı kapsamlı bir kimlik bilgisi oluşturun. SSMS gibi bir istemci aracı kullanarak yeni bir sorgu penceresi açın, olay oturumunu oluşturduğunuz veritabanına bağlanın ve aşağıdaki T-SQL toplu işlemini yapıştırın. Veritabanına değil, kullanıcı veritabanınıza bağlı olduğunuzdan
masteremin olun.Note
Aşağıdaki T-SQL toplu işlemini yürütmek için veritabanı izni gerekir
CONTROL. Varsayılan olarak, izin veritabanı sahibi ()dbotarafından, veritabanı rolünündb_ownerüyeleri ve mantıksal sunucunun yöneticisi tarafından tutulur./* (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';
Bu toplu işlemi yürütmeden önce aşağıdaki değişikliği yapın:
- öğesinin
https://<storage-account-name>.blob.core.windows.net/<container-name>üç örneğinde de değerini<storage-account-name>depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin<container-name>.
SAS belirteci kullanarak erişim verme
Azure portalında, oluşturduğunuz depolama hesabına ve kapsayıcıya gidin. Kapsayıcıyı seçin ve Ayarlar > Paylaşılan erişim belirteçleri'ne gidin.
SAS belirteci aşağıdaki gereksinimleri karşılamalıdır:
-
İzinler
Read, ,Write,DeleteList. - Başlangıç saati ve Süre Sonu süresi, olay oturumunun ömrünü içermelidir. Oluşturduğunuz SAS belirteci yalnızca bu zaman aralığı içinde çalışır.
- IP adresi kısıtlaması yoktur.
SAS belirteci ve URL oluştur düğmesini seçin. SAS belirteci Blob SAS belirteci kutusundadır. Sonraki adımda kullanmak üzere kopyalayabilirsiniz.
Important
SAS belirteci bu kapsayıcıya okuma ve yazma erişimi sağlar. Parolayı veya başka bir gizli diziyi ele alır gibi davranın.
-
İzinler
SAS belirtecini depolamak için bir kimlik bilgisi oluşturun.
SAS belirtecini veritabanı kapsamlı bir kimlik bilgileri içinde depolayın. SSMS gibi bir istemci aracı kullanarak yeni bir sorgu penceresi açın, olay oturumunu oluşturduğunuz veritabanına bağlanın ve aşağıdaki T-SQL toplu işlemini yapıştırın. Veritabanına değil, kullanıcı veritabanınıza bağlı olduğunuzdan
masteremin olun.Note
Aşağıdaki T-SQL toplu işlemini yürütmek için veritabanı izni gerekir
CONTROL. Varsayılan olarak, izin veritabanı sahibi ()dbotarafından, veritabanı rolünündb_ownerüyeleri ve mantıksal sunucunun yöneticisi tarafından tutulur./* 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>';Bu toplu işlemi yürütmeden önce aşağıdaki değişiklikleri yapın:
- öğesinin
https://<storage-account-name>.blob.core.windows.net/<container-name>üç örneğinde de değerini<storage-account-name>depolama hesabınızın adıyla, değerini de kapsayıcınızın adıyla değiştirin<container-name>. - yan tümcesinde
SECRETdeğerini önceki adımda kopyaladığınız SAS belirteciyle değiştirin<sas-token>.
- öğesinin
Olay oturumu oluşturma, başlatma ve durdurma
Kimlik bilgisi oluşturulduktan sonra olay oturumunu oluşturabilirsiniz. Kimlik bilgilerini oluşturmanın aksine, olay oturumu oluşturmak için izin gerekmez CONTROL . Kimlik bilgisi oluşturulduktan sonra, daha kısıtlı izinleriniz olsa bile olay oturumları oluşturabilirsiniz.
İzinler sayfasında gereken belirli izinleri görün.
SQL Server Management Studio'da (SSMS), Azure SQL Veritabanı mantıksal sunucusuna bağlanın.
Yönetim klasörünün altındaki Genişletilmiş Olaylar düğümünü genişletin.
Oturumlar klasörüne sağ tıklayın ve Yeni Oturum... öğesini seçin.
Genel sayfasında, oturum için aşağıdaki kod örneğine yönelik
example-sessionbir ad girin.Olaylar sayfasında oturuma eklenecek bir veya daha fazla olayı seçin. Bu örnekte olayı seçtik
sql_batch_starting.Veri Depolama sayfasında hedef tür olarak seçin
event_file.- Yerel olay dosyası için yerel dosya hedefini seçin.
- Azure Depolama'da depolanan bir olay dosyası blobu için depolama kapsayıcısının URL'sini Depolama URL'si kutusuna yapıştırın. Bu URL'nin sonuna bir eğik çizgi (
/) ve ardından dosya (blob) adı yazın. Örneğin,https://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel.
Veri Depolama sayfasında hedef tür olarak seçin
event_fileve depolama kapsayıcısının URL'sini Depolama URL'si kutusuna yapıştırın. Bu URL'nin sonuna bir eğik çizgi (/) ve ardından dosya (blob) adı yazın. Örneğimizde blob adı şeklindedirexample-session.xelve URL'nin tamamı şeklindedirhttps://<storage-account-name>.blob.core.windows.net/<container-name>/example-session.xel.Note
SQL Yönetilen Örneği için, depolama kapsayıcısı URL'sini Veri depolama sayfasına yapıştırmak yerine Betik düğmesini kullanarak oturumun T-SQL betiğini oluşturun. Aşağıdaki SQL Yönetilen Örneği örneğe benzer şekilde bağımsız değişkenin
filenamedeğeri olarak kapsayıcı URL'sini belirtin ve betiği yürüterek oturumu oluşturun.Oturum yapılandırıldığına göre, betik düğmesini seçerek oturumun T-SQL betiğini oluşturabilir ve daha sonra kaydedebilirsiniz. Örnek oturumumuzun betiği şu şekildedir:
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
Oturumu oluşturmak için Tamam'ı seçin.
oluşturduğunuz olay oturumunu görmek için Nesne Gezgini Oturumlar klasörünü genişletin. Varsayılan olarak, oturum oluşturulduğunda başlatılmaz. Oturumu başlatmak için oturum adına sağ tıklayın ve Oturumu Başlat'ı seçin. Daha sonra, oturum çalıştırıldıktan sonra benzer şekilde Oturumu Durdur'u seçerek durdurabilirsiniz.
T-SQL toplu işlemleri yürütüldükçe, oturum olayları example-session.xel depolama kapsayıcısında bloba yazar.
Oturumu durdurmak için Nesne Gezgini sağ tıklayın ve Oturumu Durdur'u seçin.
Azure Depolama'da event_file hedefi olan olay oturumlarıyla ilgili sorunları giderme
Aşağıdaki listede, Azure Depolama kullanan bir genişletilmiş olay oturumu başlatılırken karşılaşabileceğiniz hatalar ve hatanın olası açıklamaları yer alır.
-
İşletim sistemi hata 5 döndürdü: 'Erişim reddedildi.'
- Yönetilen kimlik doğrulaması kullanılıyorsa:
- Veritabanı altyapısı tarafından kullanılan yönetilen kimlikte gerekli RBAC rol ataması yoktur. Daha fazla bilgi için bkz. Yönetilen kimliği kullanarak erişim izni sağlama.
- Depolama hesabı güvenlik duvarı etkinleştirilir ve güvenilen Azure hizmetlerinin depolama hesabına erişmesine izin veren bir özel durum da etkinleştirilir, ancak mantıksal sunucu için bir
Microsoft.Sql/serverskaynak örneği erişim verilen kaynak örnekleri listesine eklenmemiştir. Daha fazla bilgi için bkz. Azure kaynak örneklerinden erişim verme. - Zorunlu modlu bir ağ güvenlik çevresi kullanıyorsanız, veritabanı ve depolama hesabı aynı çevre içinde değildir.
- SAS token'i ile kimlik doğrulama kullanılıyorsa:
- Depolama hesabı güvenlik duvarı etkinleştirildi. Bu, SAS belirteci kimlik doğrulaması kullanan olay oturumlarında desteklenmez.
- SAS belirteci ya yeterli izne sahip değil ya da süresi dolmuş. Daha fazla bilgi için SAS belirteci kullanarak erişim verin kısmına bakın.
- Zorunlu modlu bir ağ güvenlik çevresi kullanıyorsanız, veritabanından sınırsız giden iletişime ve depolama hesabına sınırsız gelen iletişime izin veren erişim kuralları uygulanmaz.
- Yönetilen kimlik doğrulaması kullanılıyorsa:
-
İşletim sistemi 86 hatasını döndürdü: 'Belirtilen ağ parolası doğru değil.'
- Blob kapsayıcı URL'si ile eşleşen veritabanı kapsamlı kimlik bilgisi (Azure SQL Veritabanı için) veya sunucu kapsamlı kimlik bilgisi (Azure SQL Yönetilen Örneği veya SQL Server için) yoktur. Daha fazla bilgi için yönetilen kimlik kullanarak erişim verme veya SAS belirteci kullanarak erişim verme örneklerine göz atın.
- Kimlik adı eğik çizgiyle (
/) biter. Kimlik bilgisi adı, sonunda eğik çizgi olmayan konteyner adıyla bitmelidir.
-
İşletim sistemi 3 hatasını döndürdü: 'Sistem belirtilen yolu bulamıyor.'
- Blob kapsayıcı URL'sinde belirtilen kapsayıcı mevcut değil.
-
İşletim sistemi 13. hata döndürdü: 'Veriler geçersiz.'
- Blob kapsayıcısı üzerinde bir değişmezlik ilkesi vardır. Değiştirilemez depolama, olay oturumları için desteklenmiyor.
- Depolama hesabında hiyerarşik ad alanı etkindir. Hiyerarşik ad alanı etkinleştirilmiş depolama hesapları, olay oturumları için desteklenmez.
Olay verilerini görüntüleme
Olay verilerini, yakaladığınız verileri analiz etmek için filtreleri ve toplamaları kullanabileceğiniz SQL Server Management Studio (SSMS) olay görüntüleyicisi kullanıcı arabiriminde görüntüleyebilirsiniz. SSMS'de olay görüntüleyicisini kullanma hakkında daha fazla bilgi için bkz. SQL Server Management Studio'da olay verilerini görüntüleme.
T-SQL kullanarak olay verilerini görüntüleme
T-SQL kullanarak olay oturumu verilerini okumak için sys.fn_xe_file_target_read_file() işlevini kullanın. Bu işlevi, olay oturumunun oluşturulduğu veritabanından farklı bir veritabanında veya örnekte kullanmak için, olay veri bloblarıyla depolama kapsayıcısında Veritabanı Altyapısı'na kapsayıcı üzerinde erişim vermeniz gerekir. Bakın, Yönetilen kimlik kullanarak erişim verme veya SAS belirteci kullanarak erişim verme.
Daha ayrıntılı bir izlenecek yol için bkz . SSMS'de olay oturumu oluşturma.
Azure depolamadan xel dosyalarını indirme
Tip
SSMS v19.2 veya üzerini kullanıyorsanız, bu bölümde açıklandığı gibi dosyaları indirmeniz xel gerekmez. Bu sürümlerde SSMS, her oturumun xel dosyalarını doğrudan Azure Depolama kapsayıcısından okur. Daha fazla bilgi için Bkz . Azure SQL'de Genişletilmiş Olayları Geliştirme blogu.
Oturumun blobunu xel depolama kapsayıcısından indirin ve yerel dosya olarak kaydedin. Azure portalında kullandığınız depolama hesabını bulun, Veri depolama'nın altında Kapsayıcılar'ı seçin ve olay oturumunuz için oluşturduğunuz kapsayıcıyı seçin. Oturumun blobu, adının ilk bölümü olarak oturum adını ve sayısal son eki içerir. Blob için bağlam menüsünü göstermek için üç noktayı (...) ve ardından İndir'i seçin.
Tek bir işlemde birden çok blob indirmek için Azure Depolama Gezginixel.
xel Dosya indirildikten sonra SSMS'de açın. SSMS ana menüsünde Dosya'ya gidin ve Aç'ı seçin. Tek xel bir dosyanız varsa Dosya... öğesini seçin ve indirdiğiniz dosyaya gidin. Aynı olay oturumu tarafından oluşturulan birden çok xel dosyanız varsa (geçiş dosyaları olarak bilinir), Tümünü olay görüntüleyicisinde açmak için Genişletilmiş Olay Dosyalarını Birleştir... iletişim kutusunu kullanabilirsiniz.