Delen via


Referentie systeemtabel auditlog

Belangrijk

Deze systeemtabel bevindt zich in Openbare Preview. Voor toegang tot de tabel moet het schema zijn ingeschakeld in uw system catalogus. Zie Systeemtabelschema's inschakelenvoor meer informatie.

Dit artikel bevat een overzicht van het schema van de auditlogboektabel en bevat voorbeeldquery's die u kunt gebruiken met de tabel auditlogboeksysteem om algemene vragen over accountactiviteit te beantwoorden. Zie de naslaginformatie over diagnostische logboeken voor informatie over gebeurtenissen in auditlogboeken.

tabelpad: deze systeemtabel bevindt zich op system.access.audit.

Overwegingen voor auditlogboeken

  • De meeste auditlogboeken zijn alleen beschikbaar in de regio van de werkruimte.
  • Auditlogboeken op accountniveau registreren workspace_id als 0.

Schema van systeemtabel auditlogboek

De systeemtabel van het auditlogboek maakt gebruik van het volgende schema:

Kolomnaam Gegevenstype Beschrijving Voorbeeld
version tekenreeks Schemaversie van auditlogboek 2.0
event_time timestamp Tijdstempel van de gebeurtenis. Tijdzonegegevens worden vastgelegd aan het einde van de waarde met +00:00 die UTC-tijdzone vertegenwoordigen. 2023-01-01T01:01:01.123+00:00
event_date datum Kalenderdatum waarop de actie heeft plaatsgevonden 2023-01-01
workspace_id long Id van de werkruimte 1234567890123456
source_ip_address tekenreeks IP-adres waar de aanvraag afkomstig is 10.30.0.242
user_agent tekenreeks Oorsprong van aanvraag Apache-HttpClient/4.5.13 (Java/1.8.0_345)
session_id tekenreeks Id van de sessie waaruit de aanvraag afkomstig is 123456789
user_identity tekenreeks Identiteit van de initiƫrende aanvraag van de gebruiker {"email": "user@domain.com",
"subjectName": null}
service_name tekenreeks Aanvraag voor initiƫren van servicenaam unityCatalog
action_name tekenreeks Categorie van de gebeurtenis die is vastgelegd in het auditlogboek getTable
request_id tekenreeks Id van aanvraag ServiceMain-4529754264
request_params map Mapping van sleutel-waardeparen die alle aanvraagparameters bevat. Afhankelijk van het aanvraagtype [["full_name_arg", "user.chat.messages"],
["workspace_id", "123456789"],
["metastore_id", "123456789"]]
response Struct Structuur van de response retourwaarden {"statusCode": 200, "errorMessage": null,
"result": null}
audit_level tekenreeks Gebeurtenis op werkruimte- of accountniveau ACCOUNT_LEVEL
account_id tekenreeks Id van het account 23e22ba4-87b9-4cc2-9770-d10b894bxx
event_id tekenreeks Id van de gebeurtenis 34ac703c772f3549dcc8671f654950f0
identity_metadata Struct Identiteiten die betrokken zijn bij de actie, waaronder run_by en run_as. Zie toegewezen rekenactiviteit voor de controlegroep. {run_by: example@email.com;
run_as: example@email.com;

Voorbeeldquery's

De volgende secties bevatten voorbeelden van SQL-query's die u kunt gebruiken om inzicht te krijgen in de systeemtabel van uw auditlogboeken.

Notitie

Enkele voorbeelden zijn uitgebreide auditlogboekgebeurtenissen, die standaard niet zijn ingeschakeld. Zie Uitgebreide auditlogboeken inschakelen in een werkruimte als u uitgebreide auditlogboeken wilt inschakelen.

Dit artikel bevat de volgende voorbeeldquery's:

Wie heeft er toegang tot deze tabel?

Deze query maakt gebruik van de information_schema om te bepalen welke gebruikers machtigingen hebben voor een tabel. Voer waarden in voor de parameters catalogus, schema en tabelnaam.

SELECT DISTINCT(grantee), privilege_type, 'catalog' AS level
FROM system.information_schema.catalog_privileges
WHERE
  catalog_name = :catalog_name
UNION
SELECT DISTINCT(grantee), privilege_type, 'schema' AS level
FROM system.information_schema.schema_privileges
WHERE
  catalog_name = :catalog_name AND schema_name = :schema_name
UNION
SELECT DISTINCT(grantee) AS `accessible by`, privilege_type, 'table' AS level
FROM
  system.information_schema.table_privileges
WHERE
  table_catalog = :catalog_name AND table_schema = :schema_name AND table_name = :table_name
UNION
SELECT table_owner, 'ALL_PRIVILEGES' AS privilege_type, 'owner' AS level
FROM system.information_schema.tables
WHERE
  table_catalog = :catalog_name AND table_schema = :schema_name AND table_name = :table_name

Welke gebruikers hebben binnen de afgelopen zeven dagen toegang gehad tot een tabel?

Voer de tabelpadinformatie in de queryparameters in om deze query te laten werken.

Notitie

Volledige namen worden niet vastgelegd in het logboek voor DML-bewerkingen. Neem het schema en de eenvoudige naam op om alles vast te leggen.

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 = :table_full_name
    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 7 day
ORDER BY
  event_date DESC

Welke tabellen heeft een gebruiker onlangs geopend?

Voer voor deze query het e-mailadres van de gebruiker in de parameter :User en een getal in de parameter :days_ago in.

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) < :days_ago
ORDER BY
  event_date DESC

Voorbeeldresultaat

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

Wijzigingen in machtigingen weergeven voor alle beveiligbare objecten

Deze query retourneert een gebeurtenis voor elke machtigingswijziging die in uw account is opgetreden. De query retourneert de gebruiker die de wijziging heeft aangebracht, het beveiligbare objecttype en de naam en de specifieke wijzigingen die zijn aangebracht.

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

De laatst uitgevoerde notebookopdrachten weergeven

Deze query retourneert de laatst uitgevoerde notebookopdrachten en de gebruiker die de opdracht heeft uitgevoerd.

Notitie

De runCommand actie wordt alleen verzonden wanneer uitgebreide auditlogboeken zijn ingeschakeld. Zie Uitgebreide auditlogboeken inschakelen als u uitgebreide auditlogboeken wilt inschakelen.

SELECT event_time, user_identity.email, request_params.commandText
FROM system.access.audit
WHERE action_name = `runCommand`
ORDER BY event_time DESC
LIMIT 100

Welke gebruikers hebben zich aangemeld bij een Databricks-app?

Deze query retourneert een gebeurtenis voor elke aanmelding bij een Databricks-app-exemplaar.

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

Vervang door {{application-ID}} de waarde van de toepassings-id voor de service-principal die is toegewezen aan een specifieke Databricks-app. Deze waarde vindt u in de beheerinstellingen voor de Databricks-werkruimte die als host fungeert voor de app.

Welke Databricks-apps zijn bijgewerkt om te wijzigen hoe de app wordt gedeeld met andere gebruikers of groepen?

Deze query retourneert gebeurtenissen voor machtigingsupdates om de toegang tot Databricks-apps te wijzigen, inclusief het machtigingstype, de gebruiker of groep waaraan de nieuwe machtiging is toegewezen en de gebruiker die de wijziging heeft ingediend.

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