Adatmegosztás auditálása és figyelése
Ez a cikk azt ismerteti, hogy az adatszolgáltatók és a címzettek hogyan használhatják az auditnaplókat a Delta-megosztási események monitorozására. A szolgáltató naplózása rögzíti a szolgáltató által végrehajtott műveleteket, valamint a címzettek által a szolgáltató megosztott adatain végrehajtott műveleteket. A címzett auditnaplói rögzítik a megosztások elérésével és a szolgáltatói objektumok kezelésével kapcsolatos eseményeket.
A deltamegosztási naplóesemények listájának megtekintéséhez lásd a Delta Sharing eseményeit.
Követelmények
Az auditnaplók eléréséhez a fiókadminisztrátornak engedélyeznie kell az Azure Databricks-fiók naplózási naplórendszer-tábláját. Lásd: Rendszertáblák engedélyezése. A naplózási naplórendszer táblával kapcsolatos információkért tekintse meg az Auditnapló rendszer táblájának hivatkozását.
Ha Ön nem fiókadminisztrátor vagy metaadattár-rendszergazda, hozzáférést kell kapnia az auditnaplók olvasásához system.access.audit
.
Delta Sharing események megtekintése az auditnaplóban
Ha a fiókjában engedélyezve vannak a rendszertáblák, az ellenőrzési naplók a system.access.audit
tárolódnak. Ha alternatívaként a fiókja beállítása tartalmazza az auditnaplók kézbesítését, ismernie kell a tárolót és az elérési utat, ahová a naplók kézbesítése történik.
Naplózott események
A Delta Sharing naplózási naplóeseményeinek listájának megtekintéséhez tekintse meg a Delta Sharing eseményeit.
A címzett lekérdezési eredményének részleteinek megtekintése
A Delta Sharing támogatja az eszköztípusok, például táblák, nézetek, materializált nézetek, streamelési képes anyagok és kötetek megosztását. A Delta Sharing ideiglenes olvasási hozzáférést biztosít az alapul szolgáló adatokhoz előre aláírt URL-címekről vagy a hatókörbe tartozó, lehatárolt STS-jogkivonatokból. Az alábbi táblázat azt ismerteti, hogy a megosztási típus hogyan felel meg a naplózott naplóeseményeknek:
Forgatókönyv | Auditnapló események |
---|---|
Megnyitott címzettekkel és a Databricks-címzettekkel megosztott előzmény nélküli táblák |
|
A Databricks-címzettekkel megosztott előzményekkel rendelkező táblázat |
|
Meghajtómegosztás (STS token-alapú hozzáférés) |
|
Előre aláírt URL-megosztások részleteinek megtekintése
A szolgáltatói naplókban az események deltaSharingQueriedTableChanges
és deltaSharingQueriedTable
naplózva lesznek, miután az adatátvevő lekérdezése választ kap az előre aláírt URL-alapú megosztásra. A szolgáltatók megtekinthetik ezeknek a naplóknak a response.result
mezőit, hogy további részleteket lássanak a címzettel megosztott adatokról. A mező a következő értékeket tartalmazhatja. Ez a lista nem teljes.
"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"
Az STS-token megosztások részleteinek megtekintése
A szolgáltatói naplókban az események generateTemporaryTableCredentials
és generateTemporaryVolumeCredentials
naplózva lesznek, miután az adatátvevő lekérdezése választ kap az STS-jogkivonaton alapuló megosztásra. A szolgáltatók megtekinthetik ezeknek a naplóknak a request_params
oszlopát, hogy további részleteket lássanak arról, hogy mit osztottak meg a címzettel. A mező a következő értékeket tartalmazhatja. Ez a lista nem teljes.
"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"
Naplózott hibák
Ha a deltamegosztási kísérlet meghiúsul, a rendszer a napló mezőjében megjelenő response.error_message
hibaüzenettel naplózza a műveletet. Az <
és >
karakterek közötti elemek helyőrző szöveget jelölnek.
Hibaüzenetek a szolgáltatói naplókban
A Delta Sharing az alábbi hibákat naplózza az adatszolgáltatók esetében:
A Delta-megosztás nincs engedélyezve a kijelölt metaadattárban.
DatabricksServiceException: FEATURE_DISABLED: Delta Sharing is not enabled
Nem létező katalóguson kíséreltek meg műveletet végrehajtani.
DatabricksServiceException: CATALOG_DOES_NOT_EXIST: Catalog ‘<catalog>’ does not exist.
Nem fiókadminisztrátor vagy metaadattár-adminisztrátor felhasználó kísérelt meg privilegizált műveletet végrehajtani.
DatabricksServiceException: PERMISSION_DENIED: Only administrators can <operation-name> <operation-target>
Egy olyan munkaterületről kíséreltek meg műveletet végrehajtani a metaadattáron, amelyhez a metaadattár nincs hozzárendelve.
DatabricksServiceException: INVALID_STATE: Workspace <workspace-name> is no longer assigned to this metastore
Egy kérésből hiányzott a címzett neve vagy a megosztás neve.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare Missing required field: <recipient-name>/<share-name>
Egy kérés érvénytelen címzettnevet vagy megosztásnevet tartalmazott.
DatabricksServiceException: INVALID_PARAMETER_VALUE: CreateRecipient/CreateShare <recipient-name>/<share-name> is not a valid name
Egy felhasználó olyan táblát próbált megosztani, amely nem Unity-katalógus-metaadattárban található.
DatabricksServiceException: INVALID_PARAMETER_VALUE: Only managed or external table on Unity Catalog can be added to a share
Egy felhasználó olyan címzettet próbált elforgatni, amely már elforgatott állapotban volt, és amelynek előző tokenje még nem járt le.
DatabricksServiceException: INVALID_PARAMETER_VALUE: There are already two active tokens for recipient <recipient-name>
Egy felhasználó egy meglévővel azonos nevű új címzettet vagy megosztást próbált meg létrehozni.
DatabricksServiceException: RECIPIENT_ALREADY_EXISTS/SHARE_ALREADY_EXISTS: Recipient/Share <name> already exists`
Egy felhasználó megkísérelt végrehajtani egy műveletet egy olyan címzetten vagy megosztáson, amely nem létezik.
DatabricksServiceException: RECIPIENT_DOES_NOT_EXIST/SHARE_DOES_NOT_EXIST: Recipient/Share '<name>' does not exist
Egy felhasználó megpróbált hozzáadni egy táblát egy megosztáshoz, de a táblát már hozzá van adva.
DatabricksServiceException: RESOURCE_ALREADY_EXISTS: Shared Table '<name>' already exists
Egy felhasználó olyan műveletet kísérelt meg végrehajtani, amely nem létező táblára hivatkozott.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: Table '<name>' does not exist
Egy felhasználó olyan műveletet kísérelt meg végrehajtani, amely nem létező sémára hivatkozott.
DatabricksServiceException: SCHEMA_DOES_NOT_EXIST: Schema '<name>' does not exist
Egy felhasználó olyan megosztáshoz próbált hozzáférni, amely nem létezik.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
Hibaüzenetek a címzettnaplókban
A Delta Sharing az alábbi hibákat naplózza az adat címzettjei esetében:
A felhasználó olyan megosztáshoz próbált hozzáférni, amelyhez nincs hozzáférése.
DatabricksServiceException: PERMISSION_DENIED: User does not have SELECT on Share <share-name>
A felhasználó olyan megosztáshoz próbált hozzáférni, amely nem létezik.
DatabricksServiceException: SHARE_DOES_NOT_EXIST: Share <share-name> does not exist.
A felhasználó olyan táblát próbált elérni, amely nem létezik a megosztásban.
DatabricksServiceException: TABLE_DOES_NOT_EXIST: <table-name> does not exist.