PostgreSQL için Azure Veritabanı'nda denetim günlüğü

PostgreSQL için Azure Veri Tabanı'de veritabanı etkinliklerinin denetim günlüğü kaydı, pgaudit uzantısı aracılığıyla kullanılabilir. pgaudit ayrıntılı oturum ve/veya nesne denetim günlüğü sağlar.

İşlem ve depolama ölçeklendirme gibi işlemler için Azure kaynak düzeyinde günlükler istiyorsanız bkz . Azure Etkinlik Günlüğü.

Kullanımla ilgili dikkat edilmesi gerekenler

Varsayılan olarak, pgaudit günlük deyimleri ve normal günlük deyimleriniz Postgres'in standart günlüğe kaydetme özelliği kullanılarak gönderilir. PostgreSQL için Azure Veritabanı'nda, Log Analytics'te daha sonra analiz için Azure İzleyici Günlük deposuna gönderilecek tüm günlükleri yapılandırabilirsiniz. Azure İzleyici kaynak günlüğünü etkinleştirirseniz, günlükleriniz tercihinize bağlı olarak otomatik olarak (JSON biçiminde) Azure Depolama, Event Hubs ve/veya Azure İzleyici günlüklerine gönderilir.

Azure Depolama, Event Hubs veya Azure İzleyici günlüklerinde günlüğe kaydetmeyi ayarlamayı öğrenmek için sunucu günlükleri makalesinin kaynak günlükleri bölümünü ziyaret edin.

Uzantıyı yükleme

Uzantıyı kullanabilmek pgaudit için, uzantıyı kullanmayı planladığınız veritabanında izin verilenler listesine eklemeniz, yüklemeniz ve oluşturmanız gerekir.

Uzantı ayarlarını yapılandırma

pgaudit oturum veya nesne denetim günlüğünü yapılandırmanıza olanak tanır. Oturum denetim günlüğü , yürütülen deyimlerin ayrıntılı günlüklerini gösterir. Nesne denetim günlüğü , denetim kapsamının belirli ilişkilere göre belirlenmiş olmasıdır. Bir veya her iki türdeki günlük kaydını ayarlamayı seçebilirsiniz.

pgaudit etkinleştirdikten sonra, günlük kaydını başlatmak için parametrelerini yapılandırabilirsiniz.

pgaudit yapılandırmak için bu talimatları izleyebilirsiniz:

Azure portalını kullanma:

  1. PostgreSQL için Azure Veritabanı örneğinizi seçin.

  2. Kaynak menüsündeki Ayarlar'ın altında Parametreler'i seçin.

  3. Parametreleri arayın pgaudit .

  4. Düzenlemek için uygun parametreyi seçin. Örneğin, INSERT, UPDATE, DELETE, TRUNCATE ve COPY ifadelerini günlüğe kaydetmeye başlamak için pgaudit.log değerini WRITE olarak ayarlayın.

  5. Değişiklikleri kaydetmek için Kaydet düğmesini seçin.

resmi belgeleripgaudit her parametrenin tanımını sağlar. Önce parametreleri test edin ve beklenen davranışı elde ettiğinizi onaylayın.

Örneğin, pgaudit.log_client ayarını ON olarak ayarlamak, denetim olaylarını yalnızca sunucu günlüğüne yazmakla kalmaz, aynı zamanda bunları istemci süreçlerine de gönderir (psql gibi). Bu ayar genellikle devre dışı bırakılmalıdır.

pgaudit.log_level parametresi ancak pgaudit.log_client açık olduğunda etkinleştirilir.

PostgreSQL için Azure Veritabanı'nda, pgaudit.log, pgaudit belgelerinde açıklandığı gibi - (eksi) işareti kısayolu kullanılarak ayarlanamaz. Tüm gerekli deyim sınıfları (READ, WRITE, vb.) ayrı ayrı belirtilmelidir.

parametresini log_statement veya olarak DDL ayarlar ve bir ALL veya CREATE ROLE/USER ... WITH PASSWORD ... ;ALTER ROLE/USER ... WITH PASSWORD ... ;komutu çalıştırırsanız PostgreSQL, PostgreSQL günlüklerinde parolanın düz metin olarak günlüğe kaydedildiği bir girdi oluşturur ve bu da olası bir güvenlik riskine neden olabilir. PostgreSQL altyapısı tasarımına göre beklenen davranıştır.

Bununla birlikte, pgaudit uzantısını kullanabilir ve pgaudit.log değerini DDL olarak ayarlayabilirsiniz; bu durumda, log_statement değerini DDL olarak ayarladığınızda olduğu gibi, Postgres sunucu günlüğüne herhangi bir CREATE/ALTER ROLE ifadesi kaydedilmez. Bu ifadeleri günlüğe kaydetmeniz gerekiyorsa, pgaudit.log değerini ROLE olarak da ayarlayabilirsiniz; bu, CREATE/ALTER ROLE günlüğe kaydedilirken parolayı günlüklerde gizler.

Denetim günlüğü biçimi

Her denetim girdisi AUDIT: ile başlar. Girdinin geri kalanının biçimi, belgelerinde ayrıntılı olarak yer alır pgaudit.

Başlangıç Yapmak

Hızlıca başlamak için pgaudit.log değerini ALL olarak ayarlayın ve çıktıyı gözden geçirmek için sunucu günlüklerinizi açın.

Denetim günlüklerini görüntüleme

Günlüklere erişme şekliniz hangi uç noktayı seçtiğinize bağlıdır. Azure Depolama için logs depolama hesabı makalesine bakın. Event Hubs için Azure günlüklerini akışla aktarma makalesine bakın.

Azure İzleyici Günlükleri için günlükler seçtiğiniz çalışma alanına gönderilir. Postgres günlükleri AzureDiagnostics koleksiyon modunu kullanır, böylece AzureDiagnostics tablosundan sorgulanabilir. Azure İzleyici Günlükleri sorgusuna genel bakış bölümünde sorgulama ve uyarı oluşturma hakkında daha fazla bilgi edinin.

Başlamak için bu sorguyu kullanabilirsiniz. Uyarıları sorgulara göre yapılandırabilirsiniz.

Son gün belirli bir sunucu için Postgres günlüklerindeki tüm pgaudit girişleri arama

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

pgaudit uzantısının yüklü olduğu Ana Sürüm Yükseltmesi

Ana sürüm yükseltmesi sırasında pgaudit uzantısı otomatik olarak bırakılır ve yükseltme tamamlandıktan sonra yeniden oluşturulur. Uzantı geri yüklenirken, içinde pgaudit.log ayarlanan özel yapılandırmalar veya diğer ilgili parametreler otomatik olarak korunmaz.