Olvasás angol nyelven

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


Naplózási naplórendszer táblareferenciája

Fontos

Ez a rendszertábla a nyilvános előzetes verzióként áll rendelkezésre . A tábla eléréséhez engedélyezni kell a sémát 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 tartalmaz, amelyek a naplórendszer táblájával a fióktevékenységekkel kapcsolatos gyakori kérdések megválaszolásához használhatók. A naplóeseményekkel kapcsolatos információkért lásd a diagnosztikai naplókra vonatkozó referenciát.

Tábla elérési útja: Ez a rendszertábla a system.access.audittalálható.

Auditnapló szempontok

  • A legtöbb naplózási napló csak a munkaterület régiójában érhető el.
  • A fiókszintű naplók a workspace_id-t 0-ként rögzítik.

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:

Név oszlop Adattípus Leírás Példa
version karakterlánc Ellenőrzési napló sémaverziója 2.0
event_time időbélyeg Az esemény időbélyege. Az időzónák adatai az érték végén lesznek rögzítve, és +00:00 az UTC időzónát jelölik. 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 szöveg 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 zsinór Szolgáltatásnév által kezdeményezett kérés unityCatalog
action_name karakterlánc Az auditnaplóban rögzített esemény kategóriája getTable
request_id zsinó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 struktúra 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
identity_metadata struktúra A műveletben részt vevő identitások, beleértve a run_by és a run_as. Lásd: Ellenőrzési csoport dedikált számítási tevékenység. {run_by: example@email.com;
run_as: example@email.com;

Minta lekérdezések

A következő szakaszok olyan SQL-minta lekérdezéseket tartalmaznak, a segítségével betekintést nyerhet az auditnaplók rendszertáblájába.

Megjegyzés

Ilyenek például a részletes audit naplóesemények, 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 a information_schema használja annak meghatározására, hogy mely felhasználók rendelkeznek engedéllyel egy táblán. Adja meg a katalógus, a séma és a táblanév paramétereinek értékeit.

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

Mely felhasználók fértek hozzá egy táblához az elmúlt hét napban?

A lekérdezés működéséhez adja meg a tábla elérési útjának adatait a lekérdezési paraméterekben.

Megjegyzé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 = :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

Mely táblákhoz fért hozzá a felhasználó a közelmúltban?

A lekérdezés működéséhez adja meg a felhasználó e-mail-címét a :User paraméterben, és egy számot a :days_ago paraméterben.

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

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 és a parancsot futtató felhasználót adja vissza.

Megjegyzé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

Mely felhasználók jelentkeztek be egy Databricks-alkalmazásba?

Ez a lekérdezés egy Databricks-alkalmazáspéldányba való minden bejelentkezéshez egy eseményt ad vissza.

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

Cserélje le {{application-ID}} az alkalmazásazonosító értékére, amely egy adott Databricks-alkalmazáshoz hozzárendelt szolgáltatásnévhez tartozik. Ez az érték az alkalmazást üzemeltető Databricks-munkaterület rendszergazdai beállításai között található.

Mely Databricks-alkalmazások lettek frissítve, hogy megváltoztassa az alkalmazás más felhasználókkal vagy csoportokkal való megosztását?

Ez a lekérdezés az engedélyfrissítések eseményeit adja vissza a Databricks-alkalmazásokhoz való hozzáférés módosításához, beleértve az engedélytípust, azt a felhasználót vagy csoportot, amelyhez az új engedély hozzá van rendelve, valamint a módosítást beküldő felhasználót.

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