Delen via


Gegevens delen controleren en bewaken

In dit artikel wordt beschreven hoe gegevensproviders en ontvangers auditlogboeken kunnen gebruiken voor het bewaken van Delta Sharing-gebeurtenissen. Auditlogboeken van provider registreren acties die door de provider worden uitgevoerd en acties die door ontvangers worden uitgevoerd op de gedeelde gegevens van de provider. Auditlogboeken van ontvangers registreren gebeurtenissen met betrekking tot het openen van deelacties en het beheer van providerobjecten.

Zie Delta Sharing-gebeurtenissen om de lijst met auditlogboekgebeurtenissen van Delta Sharing weer te geven.

Vereisten

Voor toegang tot auditlogboeken moet een accountbeheerder de systeemtabel voor het auditlogboek inschakelen voor uw Azure Databricks-account. Zie Systeemtabellen inschakelen. Raadpleeg de Referentie voor de systeemtabel van auditlogs voor informatie over de auditlog-systeemtabel.

Als u geen accountbeheerder of metastore-beheerder bent, moet u toegang krijgen tot system.access.audit om auditlogs te lezen.

Delta Sharing-gebeurtenissen weergeven in het auditlogboek

Als uw account systeemtabellen heeft ingeschakeld, worden auditlogboeken opgeslagen in system.access.audit. Als uw account ook een installatie voor de levering van auditlogboeken heeft, moet u de bucket en het pad weten waar de logboeken worden bezorgd.

Vastgelegde gebeurtenissen

Zie Delta Sharing-gebeurtenissen om de lijst met auditlogboekgebeurtenissen van Delta Sharing weer te geven.

Details van het queryresultaat van een geadresseerde weergeven

Delta Sharing biedt ondersteuning voor het delen van assettypen, zoals tabellen, weergaven, gerealiseerde weergaven, streamingtabellen en volumes. Delta Sharing biedt tijdelijke leestoegang tot de onderliggende gegevens van vooraf ondertekende URL's of van beperkte STS-tokens. In de volgende tabel wordt beschreven hoe het type delen overeenkomt met de vastgelegde gebeurtenissen in het auditlogboek:

Scenario Auditlogboekgebeurtenissen
Tabellen gedeeld met open ontvangers en tabellen zonder geschiedenis gedeeld met Databricks-ontvangers.
  • deltaSharingQueriedTable (voor tabelqueries)
  • deltaSharingQueriedTableChanges (voor CDF-queries)
Tabel met geschiedenis gedeeld met Databricks-ontvangers
  • generateTemporaryTableCredential
Volume delen (toegang op basis van STS-token)
  • generateTemporaryVolumeCredential

Details over vooraf ondertekende URL-deelacties weergeven

In de providerlogboeken worden de gebeurtenissen deltaSharingQueriedTableChanges en deltaSharingQueriedTable geregistreerd nadat de query van een gegevensontvanger een antwoord krijgt voor vooraf ondertekend delen op basis van url's. Providers kunnen het response.result veld van deze logboeken bekijken voor meer informatie over wat er met de ontvanger is gedeeld. Het veld kan de volgende waarden bevatten. Deze lijst is niet volledig.

"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"

Details bekijken over STS-tokenaandelen

In de logboeken van de provider worden de gebeurtenissen generateTemporaryTableCredentials en generateTemporaryVolumeCredentials vastgelegd nadat de query van een gegevensontvanger een antwoord krijgt op basis van STS-token delen. Providers kunnen de request_params kolom van deze logboeken bekijken voor meer informatie over wat er met de ontvanger is gedeeld. Het veld kan de volgende waarden bevatten. Deze lijst is niet volledig.

"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"

Vastgelegde fouten

Als een poging tot Delta Sharing mislukt, wordt de actie geregistreerd met het foutbericht in het response.error_message-veld van het logboek. Items tussen < en > tekens vertegenwoordigen tijdelijke tekst.

Foutberichten in providerlogboeken

Delta Sharing registreert de volgende fouten voor gegevensproviders:

  • Delta Sharing is niet ingeschakeld voor de geselecteerde metastore.

    DatabricksServiceException: FEATURE_DISABLED:
    Delta Sharing is not enabled
    
  • Er is een bewerking uitgevoerd in een catalogus die niet bestaat.

    DatabricksServiceException: CATALOG_DOES_NOT_EXIST:
    Catalog ‘<catalog>’ does not exist.
    
  • Een gebruiker die geen accountbeheerder of metastore-beheerder is, heeft geprobeerd een bevoegde bewerking uit te voeren.

    DatabricksServiceException: PERMISSION_DENIED:
    Only administrators can <operation-name> <operation-target>
    
  • Er is een bewerking uitgevoerd op een metastore vanuit een werkruimte waaraan de metastore niet is toegewezen.

    DatabricksServiceException: INVALID_STATE:
    Workspace <workspace-name> is no longer assigned to this metastore
    
  • De naam van de ontvanger of de gedeelde naam ontbreekt in een verzoek.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
    
  • Een aanvraag bevat een ongeldige naam van de ontvanger of de gedeelde naam.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
    
  • Een gebruiker heeft geprobeerd een tabel te delen die zich niet in een Unity Catalog-metastore bevindt.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
    
  • Een gebruiker heeft geprobeerd een ontvanger te draaien die al een gedraaide status heeft en waarvan het vorige token nog niet is verlopen.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
    
  • Een gebruiker heeft geprobeerd een nieuwe ontvanger te maken of te delen met dezelfde naam als een bestaande.

    DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
    
  • Een gebruiker heeft geprobeerd een bewerking uit te voeren op een ontvanger of share die niet bestaat.

    DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
    
  • Een gebruiker heeft geprobeerd een tabel toe te voegen aan een share, maar de tabel is al toegevoegd.

    DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
    
  • Een gebruiker heeft geprobeerd een bewerking uit te voeren die verwijst naar een tabel die niet bestaat.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
    
  • Een gebruiker heeft geprobeerd een bewerking uit te voeren die verwijst naar een schema dat niet bestond.

    DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
    
  • Een gebruiker heeft geprobeerd toegang te krijgen tot een share die niet bestaat.

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

Foutberichten in logboeken van ontvangers

Delta Sharing registreert de volgende fouten voor gegevensontvangers:

  • De gebruiker heeft geprobeerd toegang te krijgen tot een gedeelde map waarvoor hij geen toestemming heeft.

    DatabricksServiceException: PERMISSION_DENIED:
    User does not have SELECT on Share <share-name>
    
  • De gebruiker heeft geprobeerd toegang te krijgen tot een share die niet bestaat.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    
  • De gebruiker heeft geprobeerd toegang te krijgen tot een tabel die niet in de share bestaat.

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