Auditar e monitorar o compartilhamento de dados

Este artigo descreve como os provedores e destinatários de dados podem usar a auditoria logs para monitorar os eventos Delta Sharing. Os logs de auditoria do provedor registram as ações realizadas pelo provedor e as ações realizadas pelos destinatários nos dados compartilhados do provedor. Os logs de auditoria do destinatário registram eventos relacionados ao acesso a compartilhamentos e ao gerenciamento de objetos do provedor.

Para view a lista Delta Sharing auditoria log eventos, consulte Delta Sharing eventos.

Requisitos

Para acessar a auditoria logs, um administrador account deve habilitar a tabela do sistema audit log para o seu Databricks account. Consulte Habilitar tabelas do sistema. Para obter informações sobre a tabela do sistema Audit log, consulte Referência da tabela do sistema Audit log .

Se o senhor não for um administrador do account ou do metastore, deverá ter acesso a system.access.audit para ler a auditoria logs.

Visualizar eventos do Delta Sharing no registro de auditoria

Se o site account tiver tabelas de sistema ativadas, a auditoria logs será armazenada em system.access.audit. Se, alternativamente, sua conta tiver uma configuração de entrega de log de auditoria, o senhor precisará saber o bucket e o caminho em que os logs são entregues.

eventos de registros

Para view a lista de eventos de auditoria Delta Sharing log , consulte Delta Sharing events.

Exibir detalhes do resultado da consulta de um destinatário

No provedor logs, os eventos retornados como deltaSharingQueriedTableChanges e deltaSharingQueriedTable são registros depois que a consulta de um destinatário de dados obtém uma resposta. Os provedores podem acessar view o campo response.result desses logs para ver mais detalhes sobre o que foi compartilhado com o destinatário. O campo pode incluir os seguintes valores. Essa lista não é exaustiva.

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

erros de registros

Se uma tentativa de ação Delta Sharing falhar, a ação será registrada com a mensagem de erro no campo response.error_message do log. Os itens entre < e > caracteres representam texto de espaço reservado.

Mensagens de erro nos registros do provedor

Delta Sharing logs os seguintes erros para provedores de dados:

  • O Delta Sharing não está ativado no metastore selecionado.

    DatabricksServiceException: FEATURE_DISABLED:
    Delta Sharing is not enabled
    
  • Foi tentada uma operação em um catálogo que não existe.

    DatabricksServiceException: CATALOG_DOES_NOT_EXIST:
    Catalog ‘<catalog>’ does not exist.
    
  • Um usuário que não é um administrador do account ou do metastore tentou executar uma operação privilegiada.

    DatabricksServiceException: PERMISSION_DENIED:
    Only administrators can <operation-name> <operation-target>
    
  • Foi tentada uma operação em um metastore de um workspace ao qual o metastore não está atribuído.

    DatabricksServiceException: INVALID_STATE:
    Workspace <workspace-name> is no longer assigned to this metastore
    
  • Uma solicitação não continha o nome do destinatário ou o nome do compartilhamento.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
    
  • Uma solicitação incluiu um nome de destinatário ou nome de compartilhamento inválido.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
    
  • Um usuário tentou compartilhar uma tabela que não está em um metastore do Unity Catalog.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
    
  • Um usuário tentou rotacionar um destinatário que já estava em um estado rotacionado e cujos tokens anteriores ainda não haviam expirado.

    DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
    
  • Um usuário tentou criar um novo destinatário ou compartilhar com o mesmo nome de um destinatário existente.

    DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
    
  • Um usuário tentou executar uma operação em um destinatário ou compartilhamento que não existe.

    DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
    
  • Um usuário tentou adicionar uma tabela a um compartilhamento, mas a tabela já havia sido adicionada.

    DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
    
  • Um usuário tentou executar uma operação que fazia referência a uma tabela que não existe.

    DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
    
  • Um usuário tentou executar uma operação que fazia referência a um esquema que não existia.

    DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
    
  • Um usuário tentou acessar um compartilhamento que não existe.

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

Mensagens de erro nos registros de destinatários

Delta Sharing logs os seguintes erros para destinatários de dados:

  • O usuário tentou acessar um compartilhamento para o qual não tem permissão.

    DatabricksServiceException: PERMISSION_DENIED:
    User does not have SELECT on Share <share-name>
    
  • O usuário tentou acessar um compartilhamento que não existe.

    DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
    
  • O usuário tentou acessar uma tabela que não existe no compartilhamento.

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