يصف هذا المستند تسجيل التدقيق لقاعدة بيانات Firebase في الوقت الفعلي. Google Cloud خدمة إنشاء سجلات تدقيق لتسجيل الأنشطة الإدارية وأنشطة الوصول ضمن موارد Google Cloud لمزيد من المعلومات عن سجلات تدقيق السحابة الإلكترونية، يُرجى الاطِّلاع على ما يلي:
- أنواع سجلات التدقيق
- بنية إدخال سجلّ التدقيق
- تخزين سجلات التدقيق وتوجيهها
- ملخّص أسعار Cloud Logging
- تفعيل سجلّات تدقيق الوصول إلى البيانات
ملاحظات
يمكنك الاطّلاع على معلومات إضافية عن الحقول في "protoPayload.metadata
" للعمليات DATA_READ
وDATA_WRITE
العمليات في المستندات المرجعية.
اسم الخدمة
تستخدم سجلات تدقيق قاعدة بيانات Firebase في الوقت الفعلي اسم الخدمة firebasedatabase.googleapis.com
.
فلترة هذه الخدمة:
protoPayload.serviceName="firebasedatabase.googleapis.com"
الطرق حسب نوع الإذن
يحتوي كل إذن IAM على سمة type
، تكون قيمتها عنصرًا متسلسلًا
يمكن أن يكون إحدى القيم الأربع التالية: ADMIN_READ
أو ADMIN_WRITE
أو
DATA_READ
أو DATA_WRITE
. عند استدعاء طريقة، تُنشئ "قاعدة بيانات Firebase في الوقت الفعلي" سجلّ تدقيق تعتمد فئته على سمة
type
للإذن المطلوب لتنفيذ الطريقة.
الطرق التي تتطلّب إذن "إدارة الهوية وإمكانية الوصول" باستخدام قيمة السمة type
من إجمالي DATA_READ
أو DATA_WRITE
أو ADMIN_READ
سجلات تدقيق الوصول إلى البيانات
الطرق التي تتطلّب إذن "إدارة الهوية وإمكانية الوصول" مع قيمة السمة type
ADMIN_WRITE
تُنشئ
سجلّات تدقيق نشاط المشرف.
نوع الإذن | الطرق |
---|---|
ADMIN_READ |
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances |
ADMIN_WRITE |
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance |
DATA_READ |
google.firebase.database.v1.RealtimeDatabase.Connect google.firebase.database.v1.RealtimeDatabase.Disconnect google.firebase.database.v1.RealtimeDatabase.Listen google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel google.firebase.database.v1.RealtimeDatabase.Read google.firebase.database.v1.RealtimeDatabase.Unlisten |
DATA_WRITE |
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect google.firebase.database.v1.RealtimeDatabase.Update google.firebase.database.v1.RealtimeDatabase.Write |
سجلّات تدقيق واجهة برمجة التطبيقات
للحصول على معلومات عن كيفية تقييم الأذونات التي يتم تقييمها لكل طريقة، يُرجى الاطّلاع على مستندات Cloud Identity وإدارة الوصول في Firebase Realtime Database.
google.firebase.database.v1.RealtimeDatabase
ترتبط سجلات التدقيق التالية بالطرق التي تنتمي إلى
google.firebase.database.v1.RealtimeDatabase
.
Connect
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Connect
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.connect - DATA_READ
- الطريقة هي عملية بث أو عملية تستغرق وقتًا طويلاً:
لا.
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Connect"
Disconnect
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Disconnect
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.connect - DATA_READ
- الطريقة هي عملية بث أو عملية تستغرق وقتًا طويلاً:
لا.
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Disconnect"
Listen
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Listen
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.get - DATA_READ
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة للحصول على هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Listen"
OnDisconnectCancel
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.cancel - DATA_READ
- الطريقة هي عملية بث أو عملية تستغرق وقتًا طويلاً:
لا.
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel"
OnDisconnectPut
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.update - DATA_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut"
OnDisconnectUpdate
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.update - DATA_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة للحصول على هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate"
Read
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Read
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.get - DATA_READ
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Read"
RunOnDisconnect
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.update - DATA_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة للحصول على هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect"
Unlisten
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Unlisten
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.cancel - DATA_READ
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Unlisten"
Update
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Update
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Update"
Write
- الطريقة:
google.firebase.database.v1.RealtimeDatabase.Write
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.data.update - DATA_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Write"
google.firebase.database.v1beta.RealtimeDatabaseService
ترتبط سجلات التدقيق التالية بالطرق التي تنتمي إلى
google.firebase.database.v1beta.RealtimeDatabaseService
.
CreateDatabaseInstance
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance
- نوع سجلّ التدقيق: نشاط المشرف
- الأذونات:
firebasedatabase.instances.create - ADMIN_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance"
DeleteDatabaseInstance
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance
- نوع سجلّ التدقيق: نشاط المشرف
- الأذونات:
firebasedatabase.instances.delete - ADMIN_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة للحصول على هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance"
DisableDatabaseInstance
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance
- نوع سجلّ التدقيق: نشاط المشرف
- الأذونات:
firebasedatabase.instances.disable - ADMIN_WRITE
- الطريقة هي عملية بث أو عملية تستغرق وقتًا طويلاً:
لا.
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance"
GetDatabaseInstance
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.instances.get - ADMIN_READ
- الطريقة هي عملية بث أو عملية تستغرق وقتًا طويلاً:
لا.
- الفلترة للحصول على هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance"
ListDatabaseInstances
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances
- نوع سجلّ التدقيق: الوصول إلى البيانات
- الأذونات:
firebasedatabase.instances.list - ADMIN_READ
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances"
ReenableDatabaseInstance
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance
- نوع سجلّ التدقيق: نشاط المشرف
- الأذونات:
firebasedatabase.instances.reenable - ADMIN_WRITE
- الطريقة هي عملية بث أو عملية تستغرق وقتًا طويلاً:
لا.
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance"
UndeleteDatabaseInstance
- الطريقة:
google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance
- نوع سجلّ التدقيق: نشاط المشرف
- الأذونات:
firebasedatabase.instances.undelete - ADMIN_WRITE
- الطريقة هي عملية طويلة الأمد أو عملية بث:
رقم
- الفلترة حسب هذه الطريقة:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance"
تدقيق معلومات المصادقة
تتضمن إدخالات سجلّ التدقيق معلومات عن الهوية التي نفّذت العملية المسجّلة. لتحديد طلب المتصل، يُرجى الاطلاع على الحقول التالية ضمن كائن مدققLog:
إنشاء اتصالات في الوقت الفعلي: يتم تنفيذ Realtime Database من العمليات
Connect
لا يسجل بيانات المصادقة منذ إجراء Realtime Database للمصادقة بعد يتم إنشاء اتصال. لذلك، لا يتضمّنConnect
أي معلومات مصادقة. يحتوي الكائنAuthenticationInfo
على العنصر النائبprincipalEmail
audit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
Google Authentication: عمليات Realtime Database التي تستخدم الطريقة العادية من Google المصادقة، مثل عدد الزيارات الواردة من طلبات Firebase Admin SDK أو REST مصادقتها باستخدام رمز OAuth مميز عادي يحتوي على كائن
AuthenticationInfo
يحتوي على بيانات الاعتماد الفعلية البريد الإلكتروني.Firebase Authentication: عمليات Realtime Database التي تستخدِم Firebase Authentication تحتوي على عنصر
AuthenticationInfo
يحتوي على قيمةprincipalEmail
تعادلaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. وينطبق الأمر نفسه إذا قمت بتنفيذ حل المصادقة الخاص بك عن طريق إنشاء ملفات JWT المخصصة.- في حال استخدام رمز JSON المميّز للويب (JWT) لمصادقة جهة خارجية،
يتضمّن الحقل
thirdPartyPrincipal
عنوان الرمز المميّز وحمولةته. بالنسبة على سبيل المثال، سجلات التدقيق للطلبات التي تمت مصادقتها باستخدام Firebase Authentication تضمين الرمز المميز Firebase Authentication لهذا الطلب.
- في حال استخدام رمز JSON المميّز للويب (JWT) لمصادقة جهة خارجية،
يتضمّن الحقل
بدون مصادقة. عمليات Realtime Database التي لا تستخدم أي تتضمّن المصادقة عنصر
AuthenticationInfo
يحتوي على قيمةprincipalEmail
منaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
وقد تتم الموافقة على هذه الطلبات من خلال مثيل Realtime Database الذي يتضمّن قواعد أمان مفتوحة. ننصح جميع المستخدمين بتأمين قواعد بياناتهم بشكل صحيح.الرموز المميّزة القديمة للسرّيات: عمليات Realtime Database التي تستخدِم الرموز المميّزة القديمة تتضمّن عنصر
AuthenticationInfo
يحتوي على عنصر نائبprincipalEmail
منaudit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. بالنسبة إلى رمز JWT الموقَّع بالسرّ، يحتويthirdPartyPrincipal
على رؤوس JWT و حمولته.
تدقيق تقييمات Firebase Security Rules
يمكن استخدام سجلّات تدقيق السحابة الإلكترونية لتحديد الطلبات التي قد تتأثّر بتغييرات Rules.
في عنصر AuthorizationInfo، يمكن أن يكون authorization.permission
أحد القيم التالية:
firebasedatabase.data.get
: تم منح إذن بالقراءة في المسار المحدّد فيresource
.firebasedatabase.data.update
: تم منح الإذن بالتعديل في المسار المحدد فيresource
firebasedatabase.data.connect
: عنصر نائب لـ "Connect
" و"Disconnect
" لا حاجة إلى الحصول على إذن للاتصال بمثيل Realtime Database.firebasedatabase.data.cancel
: يُستخدَم فيUnlisten
وOnDisconnectCancel
. لا يتطلب إلغاء أو إلغاء عملية مصرّح بها سابقًا التفويض.
ربط سجلّات تدقيق Cloud بنتائج أداة تحليل الأداء Realtime Database
يمكنك إجراء تحليل أداء معمّق على Realtime Database باستخدام أداة تحليل أداء Realtime Database مع تسجيل تدقيق Realtime Database. ولكل أداة نقاط قوتها.
Cloud Audit Logging | Realtime Database محلّل |
---|---|
|
|
تتطابق محتويات سجلّ التدقيق مع مقاييس أداة تحليل الأداء كما هو موضّح أدناه.
اسم عملية تسجيل التدقيق | القيم الخاصة فيRealtimeDatabaseAuditMetadata |
اسم عملية أداة تحليل الأداء |
---|---|---|
اتصال | RequestType هو REALTIME |
الاتصال المتزامن |
قطع الاتصال | RequestType هو REALTIME |
انقطاع الاتصال المتزامن |
قراءة | RequestType هو REALTIME |
realtime-read |
قراءة | RequestType هو REST |
rest-read |
كتابة | RequestType هو REALTIME |
realtime-write |
كتابة | RequestType هو REST |
كتابة الاستراحة |
تعديل | RequestType هي REALTIME .
انقر على PreconditionType . |
realtime-update realtime-transaction |
تعديل | تم REST ميزة RequestType .
تحقق من PreconditionType . |
rest-update rest-transaction |
ListenerListen | RequestType هو REALTIME |
listener-listen |
ListenerUnlisten | RequestType هو REALTIME |
عدم الاستماع إلى المستمعين |
موقع OnConnectedPut | RequestType هو REALTIME |
عند قطع الاتصال |
عند إلغاء الربط بالتحديث | RequestType هو REALTIME |
on-disconnect-update |
OnDisconnectCancel | RequestType هو REALTIME |
on-disconnect-cancel |
تشغيل عند إلغاء الربط | RequestType هو REALTIME |
تشغيل عند قطع الاتصال |