مشاركة عبر


مرجع جدول نظام سجل التدقيق

هام

يوجد جدول النظام هذا في المعاينة العامة. للوصول إلى الجدول، يجب تمكين المخطط في الكتالوج.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

نماذج الاستعلامات

تتضمن الأقسام التالية نماذج استعلامات يمكنك استخدامها للحصول على رؤى حول جدول نظام سجلات التدقيق. لكي تعمل هذه الاستعلامات، استبدل القيم الموجودة بين أقواس متعرجة {{}} بالمعلمات الخاصة بك.

إشعار

تتضمن بعض الأمثلة أحداث سجل التدقيق المطولة، والتي لا يتم تمكينها بشكل افتراضي. لتمكين سجلات التدقيق المطولة في مساحة عمل، راجع تمكين سجلات التدقيق المطولة.

تتضمن هذه المقالة أمثلة الاستعلامات التالية:

من يمكنه الوصول إلى هذا الجدول؟

يستخدم 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