تدقيق التسجيل في قاعدة بيانات Azure ل PostgreSQL - خادم مرن

ينطبق على: قاعدة بيانات Azure ل PostgreSQL - خادم مرن

يتوفر تسجيل التدقيق لأنشطة قاعدة البيانات في قاعدة بيانات Azure لخادم PostgreSQL المرن من خلال ملحق تدقيق PostgreSQL: pgAudit. يوفر pgAudit جلسة عمل مفصلة و / أو تسجيل تدقيق العنصر.

إذا كنت تريد سجلات على مستوى موارد Azure لعمليات مثل الحوسبة وتحجيم التخزين، راجع Azure Activity Log.

اعتبارات الاستخدام

بشكل افتراضي، يتم إصدار عبارات سجل pgAudit مع عبارات السجل العادية باستخدام مُرفق التسجيل القياسي Postgres. في خادم Azure Database for PostgreSQL المرن، يمكنك تكوين جميع السجلات لإرسالها إلى مخزن Azure Monitor Log لتحليلات لاحقة في Log Analytics. إذا قمت بتمكين تسجيل موارد Azure Monitor، ترسل سجلاتك تلقائيًا بتنسيق (JavaScript Object Notation) إلى Azure Storage أو مراكز أحداث سجلات Azure Monitor، اعتمادًا على اختيارك.

لمعرفة كيفية إعداد التسجيل إلى Azure Storage أو Event Hubs أو سجلات Azure Monitor، قم بزيارة قسم سجلات الموارد فـي مقالة سجلات الخادم.

تَثبيت pgAudit

قبل أن تتمكن من تثبيت ملحق pgAudit في قاعدة بيانات Azure لخادم PostgreSQL المرن، تحتاج إلى السماح بملحق pgAudit في القائمة للاستخدام.

استخدام المدخل الخاص بـ Microsoft Azure:

  1. حدد قاعدة بيانات Azure لمثيل خادم PostgreSQL المرن.
  2. على الشريط الجانبي، قم بتحديدمعلمات الخادم.
  3. قم بإجراء بحث عن المعلمةazure.extensions.
  4. حدد pgAudit كملحق ترغب في السماح بالقائمة. لقطة شاشة تعرض قاعدة بيانات Azure ل PostgreSQL - ملحقات قائمة السماح للتثبيت.

استخدام Azure CLI:

يمكنك السماح بملحقات القائمة عبر أمر مجموعة معلمات CLI.

az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value pgAudit

لتثبيت pgAudit، تحتاج إلى تضمينه في مكتبات التحميل المسبق المشتركة للخادم. يتطلب التغيير في معلمة shared_preload_libraries Postgres إعادة تشغيل الخادم حتى يصبح ساري المفعول. يمكنك تغيير المعلمة باستخدام مدخل Microsoft Azure، Azure CLIأو REST API.

استخدام المدخل الخاص بـ Microsoft Azure:

  1. حدد قاعدة بيانات Azure لمثيل خادم PostgreSQL المرن.

  2. على الشريط الجانبي، قم بتحديدمعلمات الخادم.

  3. قم بإجراء بحث عن المعلمةshared_preload_libraries.

  4. حدد pgaudit. لقطة شاشة تعرض خادم Azure Database for PostgreSQL المرن الذي يتيح shared_preload_libraries لل pgaudit.

  5. يُمكنك التحقق من تحميل pgaudit في shared_preload_libraries عن طريق تنفيذ الاستعلام التالي في psql:

    show shared_preload_libraries;
    

    يجب أن تشاهد pgaudit في نتيجة الاستعلام التي سترجع shared_preload_libraries.

  6. اتصل بالخادم باستخدام عميل (مثل psql) وقم بتمكين ملحق pgAudit.

    CREATE EXTENSION pgaudit;
    

تلميح

إذا رأيت خطأ، فتأكد من إعادة تشغيل الخادم بعد حفظshared_preload_libraries.

إعدادات pgAudit

يسمح لك pgAudit تكوين جلسة عمل أو عنصر تسجيل التدقيق. يصدر تسجيل تدقيق الجلسة سجلات مفصلة من العبارات المنفذة. يتم تحديد نطاق تسجيل تدقيق الكائنات لعلاقات معينة. يمكنك اختيار إعداد نوع واحد أو كلا النوعين من التسجيل.

بمجرد تثبيت pgAudit، يمكنك تكوين معلماته لبدء التسجيل. لتكوين pgAudit، يُمكنك اتباع الإرشادات أدناه. استخدام المدخل الخاص بـ Microsoft Azure:

  1. حدد قاعدة بيانات Azure لخادم PostgreSQL.
  2. على الشريط الجانبي، قم بتحديدمعلمات الخادم.
  3. ابحث عن pgaudit المعلمات.
  4. اختر معلمة الإعدادات المُناسبة للتحرير. على سبيل المثال لبدء تسجيل التعيين pgaudit.log إلى WRITEلقطة شاشة تعرض Azure Database for PostgreSQL - تكوين التسجيل باستخدام pgaudit
  5. انقر فوق الزر Save لـحفظ الإعدادات

توفر وثائق pgAudit تعريف كل معلمة. اختبار المعلمات أولًا وتأكيد أن تحصل على السلوك المتوقع.

إشعار

سوف يؤدي إعداد pgaudit.log_client إلى ON إلى إعادة توجيه السجلات إلى عملية عميل (مثل psql) بدلًا من كتابتها إلى ملف. يجب ترك هذا الإعداد معطلًا بشكل عـام.

pgaudit.log_level يتم التمكين فقط في حالة pgaudit.log_clientالتشغيل.

إشعار

في قاعدة بيانات Azure لخادم pgaudit.log PostgreSQL المرن لا يمكن تعيينه باستخدام - اختصار علامة (ناقص) كما هو موضح في وثائق pgAudit. يجب تحديد جميع فئات العبارات المطلوبة، مثل (READ وWRITE)، بشكل فردي.

إشعار

إذا قمت بتعيين المعلمة log_statement إلى DDL أو ALL، وقمت بتشغيل أمر CREATE ROLE/USER ... WITH PASSWORD ... ; أو ALTER ROLE/USER ... WITH PASSWORD ... ;، ثم ينشئ PostgreSQL إدخالًا في سجلات PostgreSQL، حيث يتم تسجيل كلمة المرور في نص واضح، مما قد يسبب خطرًا أمنيًا محتملًا. هذا هو السلوك المتوقع وفقًا لتصميم محرك PostgreSQL. ومع ذلك، يمكنك استخدام ملحق PGAudit وتعيين المعلمة pgaudit.log='DDL' في صفحة معلمات الخادم، والتي لا تسجل أي CREATE/ALTER ROLE عبارة في سجل Postgres، على عكس إعداد Postgres log_statement='DDL'. إذا كنت بحاجة إلى تسجيل هذه العبارات، يمكنك إضافة pgaudit.log ='ROLE' بالإضافة إلى ذلك، والتي أثناء تسجيل 'CREATE/ALTER ROLE' سوف يتم تنقيح كلمة المرور من السجلات.

تنسيق سجل التدقيق

يشار إلى كل إدخال تدقيق بـAUDIT: بالقرب من بداية سطر السجل. تنسيق بقية الإدخال مفصل في وثائق pgAudit.

الشروع في العمل

للبدء بسرعة، قم بتعيين pgaudit.log إلى WRITE، وافتح سجلات الخادم لمُراجعة الإخراج.

عـرض سجلات التدقيق

تعتمد طريقة الوصول إلى السجلات على نقطة النهاية التي تختارها. بالنسبة إلى Azure Storage، راجع مقالة حساب تخزين السجلات. بالنسبة لمراكز الأحداث، راجع مقالة دفق سجلات Azure.

بالنسبة لسجلات Azure Monitor، يتم إرسال السجلات إلى مساحة العمل التي حددتها. تستخدم سجلات Postgres وضع التجميع AzureDiagnostics، بحيث يمكن الاستعلام عن ذلك من جدول AzureDiagnostics. يتم وصف الحقول الموجودة في الجدول أدناه. تعرف على المزيد حول الاستعلام والتنبيه في نظرة عامة على استعلام عن سجلات Azure Monitor.

استخدم هـذا الاستعلام للبدء. يمكنك تكوين التنبيهات استناداً إلى الاستعلامات.

البحث عـن جميع سجلات Postgres لخادم معين في اليوم الأخير

AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

الخطوات التالية