Naslaginformatie over systeemtabel auditlogboeken
Belangrijk
Deze functie is beschikbaar als openbare preview.
Dit artikel bevat een overzicht van het schema van de auditlogboektabel en bevat voorbeeldquery's die u kunt gebruiken met de systeemtabel voor auditlogboeken om algemene vragen over accountgebruik te beantwoorden. Zie de naslaginformatie over diagnostische logboeken voor informatie over gebeurtenissen in auditlogboeken.
De systeemtabel van het auditlogboek bevindt zich op system.access.audit
.
Overwegingen voor auditlogboeken
- De meeste auditlogboeken zijn alleen beschikbaar in de regio van de werkruimte.
- Alleen logboeken op accountniveau van Unity Catalog zijn beschikbaar in alle regio's.
- Auditlogboeken op accountniveau registreren
workspace_id
als0
.
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 | 2023-01-01T01:01:01.123 |
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 | Toewijzing van sleutelwaarden met alle aanvraagparameters. Afhankelijk van het aanvraagtype | [["full_name_arg", "user.chat.messages"], ["workspace_id", "123456789"], ["metastore_id", "123456789"]] |
response |
Struct | Struct van antwoord 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 |
Voorbeeldquery's
De volgende secties bevatten voorbeeldquery's die u kunt gebruiken om inzicht te krijgen in de systeemtabel van uw auditlogboeken. Vervang de waarden tussen accolades {{}}
door uw eigen parameters om deze query's te laten werken.
Notitie
Sommige van deze voorbeelden omvatten uitgebreide auditlogboekgebeurtenissen, die niet standaard zijn ingeschakeld. Zie Uitgebreide auditlogboeken inschakelen in een werkruimte als u uitgebreide auditlogboeken wilt inschakelen.
Dit artikel bevat de volgende voorbeeldquery's:
- Wie heeft toegang tot deze tabel?
- Welke gebruikers hebben de afgelopen dag toegang tot een tabel gehad?
- Welke tabellen hebben een gebruiker toegang?
- Alle machtigingenwijzigingen weergeven
- De laatst uitgevoerde notebookopdrachten weergeven
Wie heeft toegang tot deze tabel?
Deze query maakt gebruik van de information_schema
query om erachter te komen welke gebruikers machtigingen hebben voor een tabel.
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}}'
Welke gebruikers hebben de afgelopen dag toegang tot een tabel gehad?
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 = '{{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
Welke tabellen hebben een gebruiker toegang?
Notitie
Als u wilt filteren op datumbereik, moet u de opmerkingen bij de datumcomponent onder aan de query verwijderen.
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
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
Met deze query worden de laatst uitgevoerde notebookopdrachten geretourneerd, samen met 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
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor