سجلات التدقيق في قاعدة بيانات Azure لـ MySQL
ينطبق على: قاعدة بيانات Azure ل MySQL - خادم واحد
هام
قاعدة بيانات Azure لخادم MySQL الفردي على مسار الإيقاف. نوصي بشدة بالترقية إلى قاعدة بيانات Azure لخادم MySQL المرن. لمزيد من المعلومات حول الترحيل إلى خادم Azure Database for MySQL المرن، راجع ما الذي يحدث لقاعدة بيانات Azure لخادم MySQL الفردي؟
في قاعدة بيانات Azure Database لـ MySQL، يوجد سجل تدقيق متاح للمستخدمين. يمكن استخدام سجل التدقيق لتعقب نشاط مستوى قاعدة البيانات ويستخدم عادة للامتثال.
تكوين سجلات التدقيق
هام
يُوصى فقط بتسجيل أنواع الأحداث والمستخدمين المطلوبين لأغراض التدقيق لضمان عدم تأثر أداء الخادم بشكل كبير وجمع الحد الأدنى من البيانات.
بشكل افتراضي، يُعطل سجل التدقيق. لتمكينه، قم بتعيين audit_log_enabled
إلى «تشغيل».
تتضمن المعلمات الأخرى التي يمكنك ضبطها ما يلي:
audit_log_events
: يتحكم في الأحداث التي سيتم تسجيلها. اتظر الجدول أدناه لأحداث تدقيق محددة.audit_log_include_users
: سيتم تضمين مستخدمي MySQL للتسجيل. القيمة الافتراضية لهذه المعلمة فارغة، والتي ستشمل جميع المستخدمين للتسجيل. لهذا أولوية أعلى علىaudit_log_exclude_users
. الحد الأقصى لطول المعلمة هو 512 حرفًا.audit_log_exclude_users
: سيتم استبعاد مستخدمي MySQL من التسجيل. الحد الأقصى لطول المعلمة هو 512 حرفًا.
إشعار
audit_log_include_users
لهذا أولوية أعلى على audit_log_exclude_users
. على سبيل المثال، في الحالة audit_log_include_users
= demouser
وaudit_log_exclude_users
= demouser
، سيتم تضمين المستخدم في سجلات التدقيق لأن audit_log_include_users
له أولوية أعلى.
الحدث | الوصف |
---|---|
CONNECTION |
- بدء الاتصال (ناجح أو غير ناجح) - إعادة مصادقة المستخدم باستخدام مستخدم/كلمة مرور مختلفة أثناء الجلسة - إنهاء الاتصال |
DML_SELECT |
تحديد الاستعلامات |
DML_NONSELECT |
إدراج/حذف/تحديث الاستعلامات |
DML |
DML = DML_SELECT + DML_NONSELECT |
DDL |
استعلامات مثل "DROP DATABASE" |
DCL |
استعلامات مثل "GRANT PERMISSION" |
ADMIN |
استعلامات مثل "SHOW STATUS" |
GENERAL |
الكل في DML_SELECT DML_NONSELECT وDML وDDL وDCL والمسؤول |
TABLE_ACCESS |
- متوفر ل MySQL 5.7 وMySQL 8.0 - عبارات قراءة الجدول، مثل SELECT أو INSERT INTO ... اختار - عبارات حذف الجدول، مثل DELETE أو TRUNCATE TABLE - عبارات إدراج الجدول، مثل INSERT أو REPLACE -عبارات تحديث الجدول مثل UPDATE |
الوصول إلى سجلات التدقيق
يتم دمج سجلات التدقيق مع سجلات Azure Monitor Diagnostic. بمجرد تمكينك لسجلات التدقيق على خادم MySQL، يمكنك إرسالها إلى سجلات Azure Monitor أو مراكز الأحداث أو تخزين Azure. لمعرفة المزيد حول كيفية تمكين سجلات التشخيص في مدخل Microsoft Azure، انظر مقالة مدخل سجل التدقيق.
إشعار
حسابات التخزين Premium غير مَدعومة إذا قمت بإرسال السجلات إلى تخزين Azure عبر التشخيصات والإعدادات
مخططات سجلات التشخيص
تصف الأقسام التالية ما هي المخرجات بواسطة سجلات تدقيق MySQL استنادا إلى نوع الحدث. اعتمادا على أسلوب الإخراج، قد تختلف الحقول المضمنة وترتيب ظهورها.
الاتصال
الخاصية | الوصف |
---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [UTC] |
الطابع الزمني عندما تم تسجيل السجل في UTC |
Type |
نوع الـسجل. دائم AzureDiagnostics |
SubscriptionId |
معرّف فريد للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دائم MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الـخادم |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
اسم الـخادم |
event_class_s |
connection_log |
event_subclass_s |
CONNECT , DISCONNECT , CHANGE USER (مُتاحة فقط لـ MySQL 5.7) |
connection_id_d |
معرف اتصال فريد تم إنشاؤه بواسطة MySQL |
host_s |
فارغ |
ip_s |
عنوان IP للعميل المتصل بـ MySQL |
user_s |
اسم المستخدم المنفذ الاستعلام |
db_s |
اسم قاعدة البيانات المتصلة بـ |
\_ResourceId |
URI للمورد |
عام
ينطبق المخطط أدناه على أنواع أحداث عام DML_SELECT DML_NONSELECT وDML وDDL وDCL و ADMIN.
إشعار
بالنسبة إلى sql_text
، سوف يتم اقتطاع السجل إذا تجاوز 2048 حرفا.
الخاصية | الوصف |
---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [UTC] |
الطابع الزمني عندما تم تسجيل السجل في UTC |
Type |
نوع الـسجل. دائم AzureDiagnostics |
SubscriptionId |
معرّف فريد للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دائم MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الـخادم |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
اسم الـخادم |
event_class_s |
general_log |
event_subclass_s |
LOG , ERROR , RESULT (مُتاحة فقط لـ MySQL 5.6) |
event_time |
وقت بدء الاستعلام في الطابع الزمني UTC |
error_code_d |
رمز الخطأ في حالة فشل الاستعلام. 0 يعني عدم وجود خطأ |
thread_id_d |
معرف مؤشر الترابط المنفذ للاستعلام |
host_s |
فارغ |
ip_s |
عنوان IP للعميل المتصل بـ MySQL |
user_s |
اسم المستخدم المنفذ الاستعلام |
sql_text_s |
نص استعلام كامل |
\_ResourceId |
URI للمورد |
الوصول للجدول
إشعار
سجلات الوصول للجدول هي إخراج فقط ل MySQL 5.7.
بالنسبة إلى sql_text
، سوف يتم اقتطاع السجل إذا تجاوز 2048 حرفا.
الخاصية | الوصف |
---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [UTC] |
الطابع الزمني عندما تم تسجيل السجل في UTC |
Type |
نوع الـسجل. دائم AzureDiagnostics |
SubscriptionId |
معرّف فريد للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دائم MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الـخادم |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
اسم الـخادم |
event_class_s |
table_access_log |
event_subclass_s |
READ , INSERT , UPDATE , أو DELETE |
connection_id_d |
معرف اتصال فريد تم إنشاؤه بواسطة MySQL |
db_s |
اسم قاعدة البيانات التي تم الوصول لها |
table_s |
اسم الجدول الذي تم الوصول له |
sql_text_s |
نص استعلام كامل |
\_ResourceId |
URI للمورد |
تحليل السجلات في Azure Monitor Logs
بمجرد نقل سجلات التدقيق إلى سجلات Azure Monitor من خلال سجلات التشخيص، يمكنك إجراء مزيد من التحليل للأحداث التي تم تدقيقها. فيما يلي بعض الاستعلامات النموذجية لمساعدتك على البدء. تأكد من التحديث أدناه باسم الخادم الخاص بك.
أحداث List GENERAL على خادم معين
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
أحداث List CONNECTION على خادم معين
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
تلخيص الأحداث المدققة على خادم معين
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by event_class_s, event_subclass_s, user_s, ip_s
Graph توزيع نوع حدث التدقيق على خادم معين
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
سرد الأحداث المدققة عبر جميع خوادم MySQL مع تمكين سجلات التشخيص لسجلات التدقيق
AzureDiagnostics | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last