Naplózási naplórendszer táblareferenciája
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el. A sémának engedélyeznie kell, hogy látható legyen a system
katalógusban. További információ: Rendszertábla-sémák engedélyezése
Ez a cikk ismerteti a naplózási naplótábla sémáját, és minta lekérdezéseket biztosít, amelyek segítségével a naplórendszer táblájával megválaszolhatja a fiókhasználattal kapcsolatos gyakori kérdéseket. A naplóeseményekkel kapcsolatos információkért lásd a diagnosztikai naplókra vonatkozó referenciát.
A naplózási naplórendszer táblája a következő helyen található: system.access.audit
.
Naplózási naplóval kapcsolatos szempontok
- A legtöbb naplózási napló csak a munkaterület régiójában érhető el.
- Csak a Unity Catalog fiókszintű naplói érhetők el minden régióban.
- A fiókszintű naplózási naplók a következőképpen rögzítik a rekordot
workspace_id
0
: .
Naplózási naplórendszer táblaséma
A naplózási naplórendszer táblázata a következő sémát használja:
Oszlop neve | Adattípus | Leírás | Példa |
---|---|---|---|
version |
húr | Naplózási napló sémaverziója | 2.0 |
event_time |
időbélyeg | Az esemény időbélyege. Az időzónára vonatkozó adatokat az érték +00:00 végén rögzíti a rendszer az UTC időzónának megfelelően. |
2023-01-01T01:01:01.123+00:00 |
event_date |
dátum: | A művelet naptári dátuma | 2023-01-01 |
workspace_id |
hosszú | A munkaterület azonosítója | 1234567890123456 |
source_ip_address |
húr | IP-cím, ahonnan a kérés származik | 10.30.0.242 |
user_agent |
húr | A kérelem eredete | Apache-HttpClient/4.5.13 (Java/1.8.0_345) |
session_id |
húr | Annak a munkamenetnek az azonosítója, ahonnan a kérés érkezett | 123456789 |
user_identity |
húr | A felhasználó kezdeményező kérésének identitása | {"email": "user@domain.com", "subjectName": null} |
service_name |
húr | Szolgáltatásnév kezdeményező kérése | unityCatalog |
action_name |
húr | Az auditnaplóban rögzített esemény kategóriája | getTable |
request_id |
húr | A kérelem azonosítója | ServiceMain-4529754264 |
request_params |
térkép | Az összes kérelemparamétert tartalmazó kulcsértékek térképe. A kérelem típusától függ | [["full_name_arg", "user.chat.messages"], ["workspace_id", "123456789"], ["metastore_id", "123456789"]] |
response |
Struct | Válasz visszatérési értékeinek felépítése | {"statusCode": 200, "errorMessage": null, "result": null} |
audit_level |
húr | Munkaterület- vagy fiókszintű esemény | ACCOUNT_LEVEL |
account_id |
húr | A fiók azonosítója | 23e22ba4-87b9-4cc2-9770-d10b894bxx |
event_id |
húr | Az esemény azonosítója | 34ac703c772f3549dcc8671f654950f0 |
Minta lekérdezések
A következő szakaszok minta lekérdezéseket tartalmaznak, a segítségével betekintést nyerhet az auditnaplók rendszertáblájába. Ahhoz, hogy ezek a lekérdezések működjenek, cserélje le a kapcsos zárójelek értékeit {{}}
a saját paramétereire.
Feljegyzés
Néhány ilyen példa részletes naplóeseményeket is tartalmaz, amelyek alapértelmezés szerint nem engedélyezettek. Ha részletes naplókat szeretne engedélyezni egy munkaterületen, olvassa el a részletes naplók engedélyezése című témakört.
Ez a cikk a következő példa lekérdezéseket tartalmazza:
- Ki férhet hozzá ehhez a táblához?
- Mely felhasználók fértek hozzá egy táblához az elmúlt napon?
- Mely táblákhoz fért hozzá egy felhasználó?
- Az összes biztonságos objektum engedélymódosításainak megtekintése
- A legutóbb futtatott jegyzetfüzetparancsok megtekintése
Ki férhet hozzá ehhez a táblához?
Ez a lekérdezés arra használja, information_schema
hogy megtudja, mely felhasználók rendelkeznek engedéllyel egy táblán.
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}}'
Mely felhasználók fértek hozzá egy táblához az elmúlt napon?
Feljegyzés
A rendszer nem rögzíti a teljes neveket a DML-műveletek naplójában. Az összes rögzítéséhez adja meg a sémát és az egyszerű nevet.
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
Mely táblákhoz fért hozzá egy felhasználó?
Feljegyzés
Dátumtartomány szerinti szűréshez bontsa ki a dátum záradékot a lekérdezés alján.
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
Példa eredmény
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 |
Az összes biztonságos objektum engedélymódosításainak megtekintése
Ez a lekérdezés egy eseményt ad vissza a fiókban történt összes engedélymódosításhoz. A lekérdezés visszaadja a módosítást végző felhasználót, a biztonságos objektum típusát és nevét, valamint a végrehajtott módosításokat.
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
A legutóbb futtatott jegyzetfüzetparancsok megtekintése
Ez a lekérdezés a legutóbb futtatott jegyzetfüzet-parancsokat adja vissza a parancsot futtató felhasználóval együtt.
Feljegyzés
A runCommand
művelet csak akkor lesz kibocsátva, ha a részletes naplózási naplók engedélyezve vannak. Részletes naplók engedélyezéséhez lásd: Részletes naplók engedélyezése.
SELECT event_time, user_identity.email, request_params.commandText
FROM system.access.audit
WHERE action_name = `runCommand`
ORDER BY event_time DESC
LIMIT 100