Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan bagaimana penyedia data dan penerima dapat menggunakan log audit untuk memantau peristiwa OpenSharing. Log audit penyedia mencatat tindakan yang diambil oleh penyedia dan tindakan yang diambil oleh penerima pada data bersama penyedia. Log audit penerima merekam peristiwa yang terkait dengan akses berbagi dan pengelolaan objek penyedia.
Requirements
Untuk mengakses log audit, admin akun harus mengaktifkan tabel sistem log audit untuk akun Azure Databricks Anda. Lihat Mengaktifkan tabel sistem. Untuk informasi tentang tabel sistem log audit, lihat Referensi tabel sistem log audit.
Jika Anda bukan admin akun atau admin metastore, Anda harus diberi akses pada system.access.audit untuk membaca log audit.
Melihat peristiwa OpenSharing di log audit
Jika akun Anda memiliki tabel sistem yang diaktifkan, log audit disimpan di system.access.audit. Jika akun Anda memiliki pengaturan pengiriman log audit, Anda perlu mengetahui bucket dan jalur tempat log dikirimkan.
Peristiwa yang dicatat
Untuk melihat daftar peristiwa log audit OpenSharing, lihat Peristiwa OpenSharing.
Menampilkan detail hasil kueri penerima
OpenSharing mendukung berbagi jenis aset seperti tabel, tampilan, tampilan materialisasi, kemampuan streaming, dan volume. OpenSharing menyediakan akses baca sementara ke data dasar baik dari URL yang telah ditandatangani sebelumnya maupun dari token STS dengan cakupan terbatas. Tabel berikut menguraikan bagaimana jenis berbagi sesuai dengan peristiwa log audit yang dicatat:
| Skenario | Kejadian log audit |
|---|---|
| Tabel yang dibagikan dengan penerima umum (akses URL yang telah ditandatangani sebelumnya) dan tabel yang tidak memiliki riwayat yang dibagikan dengan penerima Databricks |
|
| Tabel yang memenuhi syarat dibagikan dengan penerima terbuka (akses token cloud, mode akses berbasis direktori). Lihat Token cloud dan akses berbasis direktori. |
|
| Tabel dengan riwayat yang dibagikan dengan penerima Databricks |
|
| Berbagi volume (akses berbasis token STS) |
|
Melihat detail tentang berbagi URL yang telah ditandatangani sebelumnya
Dalam log penyedia, peristiwa deltaSharingQueriedTableChanges dan deltaSharingQueriedTable dicatat setelah kueri penerima data mendapatkan respons untuk berbagi berbasis URL yang telah ditandatangani sebelumnya. Penyedia dapat melihat response.result bidang log ini untuk melihat detail selengkapnya tentang apa yang dibagikan dengan penerima. Bidang dapat menyertakan nilai berikut. Daftar ini tidak lengkap.
"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"
Lihat rincian saham token STS
Dalam log penyedia, peristiwa generateTemporaryTableCredentials dan generateTemporaryVolumeCredentials dicatat setelah kueri penerima data mendapatkan respons untuk berbagi berbasis token STS. Penyedia dapat melihat kolom request_params log ini untuk melihat detail selengkapnya tentang apa yang dibagikan dengan penerima. Bidang dapat menyertakan nilai berikut. Daftar ini tidak lengkap.
"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"
Kesalahan yang dicatat
Jika tindakan OpenSharing yang dicoba gagal, tindakan dicatat dengan pesan kesalahan di response.error_message bidang log. Item-item di antara karakter < dan > mewakili teks placeholder.
Pesan kesalahan dalam log penyedia
OpenSharing mencatat kesalahan berikut untuk penyedia data:
OpenSharing tidak diaktifkan pada metastore yang dipilih.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabledOperasi dilakukan pada katalog yang tidak ada.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog '<catalog>' does not exist.Pengguna yang bukan admin akun atau admin metastore mencoba melakukan operasi yang memiliki hak istimewa.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>Diupayakan suatu operasi pada metastore dari ruang kerja yang tidak ditugaskan metastore tersebut.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastorePermintaan tidak memiliki nama penerima atau nama saham.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>Permintaan menyertakan nama penerima yang tidak valid atau nama berbagi.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid namePengguna mencoba membagikan tabel yang tidak ada dalam metastore Katalog Unity.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a shareSeorang pengguna mencoba mengubah status penerima yang sudah dalam keadaan diputar dan token sebelumnya belum kedaluwarsa.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>Pengguna mencoba membuat penerima baru atau berbagi dengan nama yang sama dengan yang sudah ada.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`Pengguna mencoba melakukan operasi pada penerima atau objek berbagi yang tidak ada.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not existSeorang pengguna mencoba menambahkan tabel ke folder berbagi, tetapi tabel sudah ditambahkan sebelumnya.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already existsPengguna mencoba melakukan operasi yang mereferensikan tabel yang tidak ada.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not existPengguna mencoba melakukan operasi yang mereferensikan skema yang tidak ada.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not existPengguna mencoba mengakses pembagian yang tidak ada.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Pesan kesalahan dalam log penerima
OpenSharing mencatat kesalahan berikut untuk penerima data:
Pengguna berusaha mengakses saham yang mereka tidak memiliki izin untuk akses.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>Pengguna mencoba mengakses sumber yang tidak ada.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.Pengguna mencoba mengakses tabel yang tidak ada di sumber berbagi.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.