Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze systeemtabel bevindt zich in Openbare Preview.
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. Voor informatie over gebeurtenissen in auditlogboeken, zie de naslaginformatie over diagnostische logboeken.
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
als0
.
Systeemschema van auditlogtabel
De systeemtabel van het auditlogboek maakt gebruik van het volgende schema:
Kolomnaam | Gegevenstype | Beschrijving | Voorbeeld |
---|---|---|---|
account_id |
tekenreeks | Id van het account | 23e22ba4-87b9-4cc2-9770-d10b894bxx |
workspace_id |
tekenreeks | Id van de werkruimte | 1234567890123456 |
version |
tekenreeks | Schemaversie van auditlogboek | 2.0 |
event_time |
tijdstempel | 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 |
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 |
Struct | Identiteit van de initiƫrende aanvraag van de gebruiker | {"email": "user@domain.com", "subjectName": null} |
service_name |
tekenreeks | Servicenaam initieert verzoek | 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 |
kaart | Overzicht 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 reactie terugkeerwaarden | {"statusCode": 200, "errorMessage": null, "result": null} |
audit_level |
tekenreeks | Gebeurtenis op werkruimte- of accountniveau | ACCOUNT_LEVEL |
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 Auditgroep specifieke rekenactiviteit. |
{run_by: example@email.com; run_as: example@email.com; |
Voorbeeldzoekopdrachten
De volgende secties bevatten voorbeelden van SQL-query's die u kunt gebruiken om inzicht te krijgen in de systeemtabel van uw auditlogboeken.
Notitie
Voorbeelden hiervan zijn uitgebreide gebeurtenissen in het auditlogboek, die niet standaard zijn ingeschakeld. Zie Uitgebreide auditlogboeken inschakelen om uitgebreide auditlogboeken in een werkruimte in te schakelen.
Dit artikel bevat de volgende voorbeeldquery's:
- Wie heeft er toegang tot deze tabel?
- Welke gebruikers hebben binnen de afgelopen zeven dagen toegang gehad tot een tabel?
- Welke tabellen heeft een gebruiker onlangs geopend?
- Wijzigingen in machtigingen weergeven voor alle beveiligbare objecten
- De laatst uitgevoerde notebookopdrachten weergeven
- Welke gebruikers hebben zich aangemeld bij een Databricks-app?
- Welke Databricks-apps zijn bijgewerkt om te wijzigen hoe de app wordt gedeeld met andere gebruikers of groepen?
- Welke zijn de meest recent gemaakte Databricks-apps?
- Wat zijn de meest recente acties van een Databricks Apps-gebruiker?
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 :User
parameter en een getal in de :days_ago
parameter 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 om uitgebreide auditlogboeken mogelijk te maken.
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,
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"] = "<oauth2-app-client-id>"
GROUP BY
event_date,
workspace_id,
user_email,
username
Vervang <oauth2-app-client-id>
door de waarde van de OAuth2-app-client-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 of het tabblad Autorisatie wanneer u de details voor een app bekijkt.
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
Welke zijn de meest recent gemaakte Databricks-apps?
Deze query retourneert gebeurtenissen voor het maken van apps, waaronder de naam, de maker en de datum van het maken van de app, gesorteerd op de tijdstempel van de aanmaakgebeurtenis.
SELECT
event_time,
user_identity.email AS email,
action_name,
get_json_object(request_params.app, '$.name') AS app_name
FROM
system.access.audit
WHERE
action_name == "createApp"
ORDER BY
event_time DESC
Wat zijn de meest recente acties van een Databricks Apps-gebruiker?
Deze query retourneert de recente acties door een gebruiker van Databricks Apps, gesorteerd op de tijdstempel van de gebeurtenis.
SELECT
event_time,
user_identity.email AS email,
service_name,
action_name
FROM
system.access.audit
WHERE
service_name = 'apps'
AND
user_identity.email = '<user-email>'
ORDER BY
event_time DESC