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. |
|
Tabel met geschiedenis gedeeld met Databricks-ontvangers |
|
Volume delen (toegang op basis van STS-token) |
|
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.