Sdílet prostřednictvím


Auditování a monitorování sdílení dat

Tento článek popisuje, jak můžou poskytovatelé dat a příjemci používat protokoly auditu k monitorování událostí Delta Sharing. Protokoly auditu poskytovatele zaznamenávají akce provedené poskytovatelem a akce prováděné příjemci ve sdílených datech poskytovatele. Protokoly auditu příjemců zaznamenávají události související s přístupem ke sdíleným složkám a správě objektů zprostředkovatele.

Pokud chcete zobrazit seznam událostí protokolu auditování Delta Sharing, viz Delta Sharing events.

Požadavky

Pokud chcete získat přístup k protokolům auditu, musí správce účtu pro váš účet Azure Databricks povolit systémovou tabulku protokolu auditu. Viz Povolení systémových tabulek. Informace o systémové tabulce protokolu auditování naleznete v tématu Referenční informace k systémové tabulce protokolu auditu.

Pokud nejste správcem účtu nebo správcem metastoru, musíte mít přístup k system.access.audit, abyste mohli číst protokoly auditu.

Zobrazit události Delta Sharing v protokolu auditu

Pokud má váš účet povolené systémové tabulky, protokoly auditu se ukládají do system.access.audit. Pokud má váš účet alternativně nastavené doručování protokolů auditu, musíte znát úložiště a cestu, kam se protokoly doručují.

Protokolované události

Pokud chcete zobrazit seznam událostí protokolu auditu Rozdílového sdílení, přečtěte si téma Rozdílové sdílení událostí.

Zobrazení podrobností o výsledku dotazu příjemce

Delta Sharing podporuje sdílení typů prostředků, jako jsou tabulky, zobrazení, materializovaná zobrazení, streamované tabulky a svazky. Delta Sharing poskytuje dočasný čtecí přístup k podkladovým datům z předem podepsaných adres URL nebo z tokenů zabezpečení s omezeným rozsahem. Následující tabulka popisuje, jak typ sdílení odpovídá událostem protokolovaného protokolu auditu:

Scénář Události protokolu auditu
Tabulky sdílené s otevřenými příjemci a tabulkami bez historie sdílené s příjemci Databricks
  • deltaSharingQueriedTable (pro dotazy na tabulky)
  • deltaSharingQueriedTableChanges (pro dotazy CDF)
Tabulka s historií sdílenou s příjemci Databricks
  • generateTemporaryTableCredential
Sdílení svazků (přístup pomocí tokenu STS)
  • generateTemporaryVolumeCredential

Zobrazení podrobností o předem podepsaných URL sdíleních

V protokolech zprostředkovatele se události deltaSharingQueriedTableChanges a deltaSharingQueriedTable protokolují poté, co dotaz příjemce dat obdrží odpověď pro sdílení prostřednictvím předem podepsané adresy URL. Zprostředkovatelé můžou zobrazit response.result pole těchto protokolů a zobrazit další podrobnosti o tom, co se sdílelo s příjemcem. Pole může obsahovat následující hodnoty. Tento seznam není vyčerpávající.

"checkpointBytes": "0",
"earlyTermination": "false",
"maxRemoveFiles": "0",
"path": "file: example/s3/path/golden/snapshot-data0/_delta_log",
"deltaSharingPartitionFilteringAccessed": "false",
"deltaSharingRecipientId": "<redacted>",
"deltaSharingRecipientIdHash": "<recipient-hash-id>",
"jsonLogFileNum": "1",
"scannedJsonLogActionNum": "5",
"numRecords": "3",
"deltaSharingRecipientMetastoreId": "<redacted>",
"userAgent": "Delta-Sharing-Unity-Catalog-Databricks-Auth/1.0 Linux/4.15.0-2068-azure-fips OpenJDK_64-Bit_Server_VM/11.0.7+10-jvmci-20.1-b02 java/11.0.7 scala/2.12.15 java_vendor/GraalVM_Community",
"jsonLogFileBytes": "2846",
"checkpointFileNum": "0",
"metastoreId": "<redacted>",
"limitHint": "Some(1)",
"tableName": "cookie_ingredients",
"tableId": "1234567c-6d8b-45fd-9565-32e9fc23f8f3",
"activeAddFiles": "2", // number of AddFiles returned in the query
"numAddFiles": "2", // number of AddFiles returned in the query
"numAddCDCFiles": "2", // number of AddFiles returned in the CDF query
"numRemoveFiles": "2", // number of RemoveFiles returned in the query
"numSeenAddFiles": "3",
"scannedAddFileSize": "1300", // file size in bytes for the AddFile returned in the query
"scannedAddCDCFileSize": "1300", // file size in bytes for the AddCDCFile returned in the CDF query
"scannedRemoveFileSize": "1300", // file size in bytes for the RemoveFile returned in the query
"scannedCheckpointActionNum": "0",
"tableVersion": "0"

Zobrazit podrobnosti o sdílení STS-tokenů

V protokolech poskytovatele jsou události generateTemporaryTableCredentials a generateTemporaryVolumeCredentials zaznamenány poté, co dotaz příjemce dat obdrží odpověď při sdílení na základě STS tokenu. Poskytovatelé můžou zobrazit sloupec request_params těchto protokolů a zobrazit další podrobnosti o tom, co se s příjemcem sdílelo. Pole může obsahovat následující hodnoty. Tento seznam není vyčerpávající.

"recipient_name": "someRecipientName"
"share_id": "ea7a4555-43d9-4cbd-a5df-f4f5193f297e"
"credential_type": "StorageCredential"
"is_permissions_enforcing_client": "true"
"table_full_name": "someTableName"
"operation": "READ"
"share_name": "someShareName"
"table_id": "someTableId"
"share_owner": "someShareOwner"
"recipient_id": "someRecipientId"
"table_url": "s3://somePath"
"metastore_id": "someMetastoreId"

Protokolované chyby

Pokud pokus o akci Delta Sharing selže, akce se zaprotokoluje s chybovou zprávou v poli protokolu response.error_message. Položky mezi < a > znaky představují zástupný text.

Chybové zprávy v protokolech zprostředkovatele

Delta Sharing protokoluje následující chyby pro poskytovatele dat:

  • Sdílení Delta není povoleno u vybraného metastoru.

    DatabricksServiceException: FEATURE_DISABLED:
    Delta Sharing is not enabled
    
  • Byl proveden pokus o operaci na katalogu, který neexistuje.

    DatabricksServiceException: CATALOG_DOES_NOT_EXIST:
    Catalog ‘<catalog>’ does not exist.
    
  • Uživatel, který není správcem účtu nebo správcem metastoru, se pokusil provést privilegovanou operaci.

    DatabricksServiceException: PERMISSION_DENIED:
    Only administrators can <operation-name> <operation-target>
    
  • Byl proveden pokus o operaci na metaúložišti z pracovního prostoru, ke kterému metaúložiště není přiřazeno.

    DatabricksServiceException: INVALID_STATE:
    Workspace <workspace-name> is no longer assigned to this metastore
    
  • V žádosti chybí jméno příjemce nebo název sdílené složky.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
    
  • Žádost obsahovala neplatné jméno příjemce nebo název sdílené složky.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
    
  • Uživatel se pokusil sdílet tabulku, která není v metastoru katalogu Unity.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
    
  • Uživatel se pokusil rotovat příjemce, který už byl v rotovaném stavu a jehož předchozí token ještě nevypršel.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
    
  • Uživatel se pokusil vytvořit nového příjemce nebo sdílet se stejným jménem jako existující příjemce.

    DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
    
  • Uživatel se pokusil provést operaci s příjemcem nebo sdílenou složkou, která neexistuje.

    DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
    
  • Uživatel se pokusil přidat tabulku do sdílené složky, ale tabulka už byla přidána.

    DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
    
  • Uživatel se pokusil provést operaci, která odkazovala na tabulku, která neexistuje.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
    
  • Uživatel se pokusil provést operaci, která odkazovala na schéma, které neexistovalo.

    DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
    
  • Uživatel se pokusil o přístup ke sdílené složce, která neexistuje.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    

Chybové zprávy v protokolech příjemců

Delta Sharing zaznamenává pro příjemce dat následující chyby:

  • Uživatel se pokusil o přístup ke sdílené složce, ke které nemá oprávnění.

    DatabricksServiceException: PERMISSION_DENIED:
    User does not have SELECT on Share <share-name>
    
  • Uživatel se pokusil o přístup ke sdílené složce, která neexistuje.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    
  • Uživatel se pokusil o přístup k tabulce, která ve sdílené složce neexistuje.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.