Megosztás a következőn keresztül:


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?

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