مرجع جدول نظام سجل التدقيق
هام
يوجد جدول النظام هذا في المعاينة العامة. للوصول إلى الجدول، يجب تمكين المخطط في الكتالوج.system
لمزيد من المعلومات، راجع تمكين مخططات جدول النظام.
توضح هذه المقالة مخطط جدول سجل التدقيق وتحتوي على نماذج من الاستعلامات التي يمكنك استخدامها مع جدول نظام سجل التدقيق للإجابة عن أسئلة استخدام الحساب الشائعة. للحصول على معلومات حول أحداث سجل التدقيق، راجع مرجع سجل التشخيص.
مسار الجدول: يقع جدول النظام هذا في system.access.audit
.
اعتبارات سجل التدقيق
- تتوفر معظم سجلات التدقيق فقط في منطقة مساحة العمل.
- سجل
workspace_id
سجلات التدقيق على مستوى الحساب ك0
.
مخطط جدول نظام سجل التدقيق
يستخدم جدول نظام سجل التدقيق المخطط التالي:
اسم العمود | نوع البيانات | الوصف | مثال |
---|---|---|---|
version |
سلسلة | إصدار مخطط سجل التدقيق | 2.0 |
event_time |
الطابع الزمني | الطابع الزمني للحدث. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل المنطقة الزمنية UTC. |
2023-01-01T01:01:01.123+00:00 |
event_date |
date | تاريخ إجراء التقويم | 2023-01-01 |
workspace_id |
طويل | معرف مساحة العمل | 1234567890123456 |
source_ip_address |
سلسلة | عنوان IP حيث نشأ الطلب | 10.30.0.242 |
user_agent |
سلسلة | أصل الطلب | Apache-HttpClient/4.5.13 (Java/1.8.0_345) |
session_id |
سلسلة | معرف الجلسة التي جاء منها الطلب | 123456789 |
user_identity |
سلسلة | هوية طلب بدء المستخدم | {"email": "user@domain.com", "subjectName": null} |
service_name |
سلسلة | طلب بدء اسم الخدمة | unityCatalog |
action_name |
سلسلة | فئة الحدث الذي تم التقاطه في سجل التدقيق | getTable |
request_id |
سلسلة | معرف الطلب | ServiceMain-4529754264 |
request_params |
map | خريطة للقيم الرئيسية التي تحتوي على جميع معلمات الطلب. يعتمد على نوع الطلب | [["full_name_arg", "user.chat.messages"], ["workspace_id", "123456789"], ["metastore_id", "123456789"]] |
response |
بنية | بنية قيم إرجاع الاستجابة | {"statusCode": 200, "errorMessage": null, "result": null} |
audit_level |
سلسلة | مساحة العمل أو حدث مستوى الحساب | ACCOUNT_LEVEL |
account_id |
سلسلة | معرف الحساب | 23e22ba4-87b9-4cc2-9770-d10b894bxx |
event_id |
سلسلة | معرف الحدث | 34ac703c772f3549dcc8671f654950f0 |
نماذج الاستعلامات
تتضمن الأقسام التالية نماذج استعلامات يمكنك استخدامها للحصول على رؤى حول جدول نظام سجلات التدقيق. لكي تعمل هذه الاستعلامات، استبدل القيم الموجودة بين أقواس متعرجة {{}}
بالمعلمات الخاصة بك.
إشعار
تتضمن بعض الأمثلة أحداث سجل التدقيق المطولة، والتي لا يتم تمكينها بشكل افتراضي. لتمكين سجلات التدقيق المطولة في مساحة عمل، راجع تمكين سجلات التدقيق المطولة.
تتضمن هذه المقالة أمثلة الاستعلامات التالية:
- من يمكنه الوصول إلى هذا الجدول؟
- ما المستخدمون الذين وصولوا إلى جدول خلال اليوم الأخير؟
- ما الجداول التي قام المستخدم بالوصول إليها؟
- عرض تغييرات الأذونات لجميع الكائنات القابلة للتأمين
- عرض أوامر دفتر الملاحظات التي تم تشغيلها مؤخرا
- ما المستخدمون الذين سجلوا الدخول إلى تطبيق Databricks؟
- ما هي تطبيقات Databricks التي تم تحديثها لتغيير كيفية مشاركة التطبيق مع مستخدمين أو مجموعات أخرى؟
من يمكنه الوصول إلى هذا الجدول؟
يستخدم information_schema
هذا الاستعلام لتحديد المستخدمين الذين لديهم أذونات على جدول.
SELECT DISTINCT(grantee) AS `ACCESSIBLE BY`
FROM system.information_schema.table_privileges
WHERE table_schema = '{{schema_name}}' AND table_name = '{{table_name}}'
UNION
SELECT table_owner
FROM system.information_schema.tables
WHERE table_schema = '{{schema_name}}' AND table_name = '{{table}}'
UNION
SELECT DISTINCT(grantee)
FROM system.information_schema.schema_privileges
WHERE schema_name = '{{schema_name}}'
ما المستخدمون الذين وصولوا إلى جدول خلال اليوم الأخير؟
إشعار
لا يتم التقاط الأسماء الكاملة في السجل لعمليات DML. قم بتضمين المخطط والاسم البسيط لالتقاط الكل.
SELECT
user_identity.email as `User`,
IFNULL(request_params.full_name_arg,
request_params.name)
AS `Table`,
action_name AS `Type of Access`,
event_time AS `Time of Access`
FROM system.access.audit
WHERE (request_params.full_name_arg = '{{catalog.schema.table}}'
OR (request_params.name = '{{table_name}}'
AND request_params.schema_name = '{{schema_name}}'))
AND action_name
IN ('createTable','getTable','deleteTable')
AND event_date > now() - interval '1 day'
ORDER BY event_date DESC
ما الجداول التي قام المستخدم بالوصول إليها؟
إشعار
للتصفية حسب نطاق التاريخ، قم بإلغاء التعليق على عبارة التاريخ في أسفل الاستعلام.
SELECT
action_name as `EVENT`,
event_time as `WHEN`,
IFNULL(request_params.full_name_arg, 'Non-specific') AS `TABLE ACCESSED`,
IFNULL(request_params.commandText,'GET table') AS `QUERY TEXT`
FROM system.access.audit
WHERE user_identity.email = '{{User}}'
AND action_name IN ('createTable',
'commandSubmit','getTable','deleteTable')
-- AND datediff(now(), event_date) < 1
-- ORDER BY event_date DESC
نتيجة المثال
EVENT |
WHEN |
TABLE ACCESSED |
QUERY TEXT |
---|---|---|---|
getTable |
2023-05-31 |
system.access.audit |
GET table |
getTable |
2023-05-31 |
system.access.table_lineage |
GET table |
commandSubmit |
2023-05-31 |
Non-specific |
show functions; |
commandSubmit |
2023-05-31 |
Non-specific |
SELECT request_params FROM system.access.audit WHERE service_name = "notebook" AND action_name = "moveFolder" LIMIT 5 |
عرض تغييرات الأذونات لجميع الكائنات القابلة للتأمين
سيقوم هذا الاستعلام بإرجاع حدث لكل تغيير في الأذونات حدث في حسابك. سيقوم الاستعلام بإرجاع المستخدم الذي أجرى التغيير ونوع العنصر القابل للتأمين واسمه والتغييرات المحددة التي تم إجراؤها.
SELECT event_time, user_identity.email, request_params.securable_type, request_params.securable_full_name, request_params.changes
FROM system.access.audit
WHERE service_name = 'unityCatalog'
AND action_name = 'updatePermissions'
ORDER BY 1 DESC
عرض أوامر دفتر الملاحظات التي تم تشغيلها مؤخرا
يقوم هذا الاستعلام بإرجاع أوامر دفتر الملاحظات التي تم تشغيلها مؤخرا والمستخدم الذي قام بتشغيل الأمر.
إشعار
runCommand
يتم إصدار الإجراء فقط عند تمكين سجلات التدقيق المطولة. لتمكين سجلات التدقيق المطولة، راجع تمكين سجلات التدقيق المطولة.
SELECT event_time, user_identity.email, request_params.commandText
FROM system.access.audit
WHERE action_name = `runCommand`
ORDER BY event_time DESC
LIMIT 100
ما المستخدمون الذين سجلوا الدخول إلى تطبيق Databricks؟
يقوم هذا الاستعلام بإرجاع حدث لكل تسجيل دخول إلى مثيل تطبيق Databricks.
SELECT
event_date,
workspace_id,
request_params.request_object_id as app,
user_identity.email as user_email,
user_identity.subject_name as username
FROM
system.access.audit
WHERE
action_name IN ("workspaceInHouseOAuthClientAuthentication", "mintOAuthToken", "mintOAuthAuthorizationCode")
AND
request_params["client_id"] LIKE "{{application-ID}}"
GROUP BY
event_date,
workspace_id,
app,
user_email,
username
استبدل {{application-ID}}
بقيمة معرف التطبيق لكيان الخدمة المعين لتطبيق Databricks معين. يمكن العثور على هذه القيمة في إعدادات المسؤول لمساحة عمل Databricks التي تستضيف التطبيق.
ما هي تطبيقات Databricks التي تم تحديثها لتغيير كيفية مشاركة التطبيق مع مستخدمين أو مجموعات أخرى؟
يقوم هذا الاستعلام بإرجاع الأحداث لتحديثات الأذونات لتغيير الوصول إلى تطبيقات Databricks، بما في ذلك نوع الإذن والمستخدم أو المجموعة التي تم تعيين الإذن الجديد إليها والمستخدم الذي أرسل التغيير.
SELECT
event_date,
workspace_id,
request_params['request_object_id'] as app,
user_identity['email'] as sharing_user,
acl_entry['group_name'],
acl_entry['user_name'],
acl_entry['permission_level']
FROM
system.access.audit t
LATERAL VIEW
explode(from_json(request_params['access_control_list'], 'array<struct<user_name:string,permission_level:string,group_name:string>>')) acl_entry AS acl_entry
WHERE
action_name = 'changeAppsAcl'
AND
request_params['request_object_type'] = 'apps'
ORDER BY
event_date DESC