Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit comment les fournisseurs de données et les destinataires peuvent utiliser les journaux d’audit pour surveiller les événements de partage Delta. Les journaux d’audit du fournisseur enregistrent les actions effectuées par le fournisseur et les actions effectuées par les destinataires sur les données partagées du fournisseur. Les journaux d’audit des destinataires enregistrent les événements liés à l’accès aux partages et à la gestion des objets fournisseur.
Spécifications
Pour accéder aux journaux d’audit, un administrateur de compte doit activer la table système du journal d’audit pour votre compte Azure Databricks. Consultez Activer les tables système. Pour plus d’informations sur la table système du journal d’audit, consultez Analyser la table système du journal d’audit.
Si vous n’êtes pas administrateur de compte ou administrateur de metastore, vous devez avoir accès à system.access.audit pour lire les journaux d’audit.
Afficher les événements Delta Sharing dans le journal d’audit
Si les tables système de votre compte sont activées, les journaux d’audit sont stockés dans system.access.audit. Si votre compte dispose d’une configuration de remise des journaux d’audit, vous devez connaître le compartiment et le chemin d’accès où les journaux sont remis.
Événements enregistrés
Pour afficher la liste des événements du journal d’audit de partage Delta, consultez Événements de partage Delta.
Afficher les détails du résultat de la requête d’un destinataire
Delta Sharing prend en charge le partage de types de ressources tels que les tables, les vues, les vues matérialisées, les fonctionnalités de diffusion en continu et les volumes. Le partage Delta fournit un accès en lecture temporaire aux données sous-jacentes à partir d’URL pré-signées ou de jetons STS délimités. Le tableau suivant décrit la façon dont le type de partage correspond aux événements du journal d’audit enregistrés :
| Scénario | Événements du journal d'audit |
|---|---|
| Tables partagées avec des destinataires ouverts et tables sans historique partagées avec des destinataires Databricks |
|
| Table avec l’historique partagé avec les destinataires Databricks |
|
| Partage de volume (accès basé sur les jetons STS) |
|
Afficher des détails sur les partages d’URL pré-signés
Dans les journaux du fournisseur, les événements deltaSharingQueriedTableChanges et deltaSharingQueriedTable sont enregistrés après la requête d’un destinataire de données obtient une réponse pour le partage basé sur l’URL pré-signé. Les fournisseurs peuvent afficher le champ response.result de ces journaux pour voir plus d’informations sur ce qui a été partagé avec le destinataire. Le champ peut inclure les valeurs suivantes. Cette liste n’est pas exhaustive.
"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"
Afficher des détails sur les partages de jetons STS
Dans les journaux du fournisseur, les événements generateTemporaryTableCredentials et generateTemporaryVolumeCredentials sont enregistrés après la requête d’un destinataire de données obtient une réponse pour le partage basé sur les jetons STS. Les fournisseurs peuvent consulter la request_params colonne de ces journaux pour voir plus de détails sur ce qui a été partagé avec le destinataire. Le champ peut inclure les valeurs suivantes. Cette liste n’est pas exhaustive.
"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"
Erreurs journalisées
Si une tentative d’action de partage delta échoue, l’action est enregistrée avec le message d’erreur dans le champ response.error_message du journal. Les éléments entre les caractères < et > représentent le texte d’espace réservé.
Messages d’erreur dans les journaux du fournisseur
Delta Sharing enregistre les erreurs suivantes pour les fournisseurs de données :
Delta Sharing n’est pas activé sur le metastore sélectionné.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabledUne opération a été tentée sur un catalogue qui n’existe pas.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog '<catalog>' does not exist.Un utilisateur qui n’est pas un administrateur de compte ou un administrateur de metastore a tenté d’effectuer une opération privilégiée.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>Une opération a été tentée sur un metastore à partir d’un espace de travail auquel le metastore n’est pas affecté.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastoreIl manque le nom du destinataire ou le nom du partage dans une requête.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>Une requête inclut un nom de destinataire ou un nom de partage non valide.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid nameUn utilisateur a tenté de partager une table qui n’est pas dans un metastore Unity Catalog.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a shareUn utilisateur a tenté de permuter un destinataire qui était déjà dans un état permuté et dont le jeton précédent n’avait pas encore expiré.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>Un utilisateur a tenté de créer un nouveau destinataire ou un nouveau partage avec le même nom qu’un autre.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`Un utilisateur a tenté d’effectuer une opération sur un destinataire ou un partage qui n’existe pas.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not existUn utilisateur a essayé d’ajouter une table à un partage, mais la table avait déjà été ajoutée.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already existsUn utilisateur a tenté d’effectuer une opération faisant référence à une table qui n’existe pas.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not existUn utilisateur a tenté d’effectuer une opération faisant référence à un schéma qui n’existait pas.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not existUn utilisateur a tenté d’accéder à un partage qui n’existe pas.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Messages d’erreur dans les journaux des destinataires
Delta Sharing enregistre les erreurs suivantes pour les destinataires de données :
L’utilisateur a tenté d’accéder à un partage auquel il n’a pas l’autorisation d’accéder.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>L’utilisateur a tenté d’accéder à un partage qui n’existe pas.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.L’utilisateur a tenté d’accéder à une table qui n’existe pas dans le partage.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.