تسجيل التدقيق في قاعدة بيانات Azure لـ PostgreSQL flexible server

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

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

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

بشكل افتراضي، pgaudit تصدر عبارات السجلات ومرفق التسجيل القياسي ل Postgres عبارات السجل العادية الخاصة بك. في قاعدة بيانات Azure لـ PostgreSQL، يمكنك تكوين جميع السجلات لإرسالها إلى مخزن سجل Azure Monitor لتحليلها لاحقا في Log Analytics. إذا قمت بتمكين تسجيل الموارد Azure Monitor، يتم إرسال سجلاتك تلقائيا (بتنسيق JSON) إلى تخزين Azure ومراكز الأحداث وسجلات Azure Monitor، استنادا إلى اختيارك.

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

تثبيت الملحق

لاستخدام الملحق pgaudit ، قائمة السماحوتحميلوإنشاء الملحق في قاعدة البيانات حيث تخطط لاستخدامه.

ضبط إعدادات الإضافة

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

بعد تمكين pgaudit، قم بتكوين معلماته لبدء التسجيل.

لتكوين pgaudit، اتبع الإرشادات التالية:

استخدم مدخل Microsoft Azure:

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

  2. في قائمة الموارد، تحت قسم الإعدادات ، اختر المعلمات.

  3. ابحث عن pgaudit المعلمات.

  4. اختر المعلمة المناسبة لتحريرها. على سبيل المثال، لبدء تسجيل INSERTعبارات UPDATEDELETECOPYTRUNCATEو و، قم بتعيين pgaudit.log إلى .WRITE

  5. حدد حفظ لحفظ التغييرات.

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

على سبيل المثال، لا يؤدي الإعداد pgaudit.log_client إلى ON كتابة أحداث التدقيق إلى سجل الخادم فحسب، بل يرسلها أيضا إلى عمليات العميل (مثل psql). بشكل عام، اترك هذا الإعداد معطلا.

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

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

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

ومع ذلك ، يمكنك استخدام الامتداد والتعيين pgaudit إلى pgaudit.log، والذي لا يسجل أي DDL عبارة في سجل خادم Postgres ، على عكس ما يحدث عند التعيين CREATE/ALTER ROLE إلى log_statement.DDL إذا كنت بحاجة إلى تسجيل هذه العبارات، يمكنك أيضا تعيين pgaudit.log إلى ROLE، الذي ينقحم كلمة المرور من السجلات أثناء تسجيل CREATE/ALTER ROLE.

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

يبدأ كل إدخال تدقيق ب AUDIT:. يتم تفصيل تنسيق بقية الإدخال في وثائقpgaudit.

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

للبدء بسرعة، اضبط pgaudit.log على ALL، وافتح سجلات الخادم لمراجعة الإخراج.

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

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

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

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

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

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

ترقية الإصدار الرئيسي مع تثبيت ملحق pgaudit

أثناء ترقية الإصدار الرئيسي، تسقط العملية تلقائيا ملحق pgaudit ثم تعيد إنشائه بعد اكتمال الترقية. بينما تستعيد العملية الملحق، فإنها لا تحتفظ تلقائيا بأي تكوينات مخصصة تم تعيينها في pgaudit.log أو معلمات أخرى ذات صلة.