Auditoria log referência de tabela do sistema
Visualização
Essa tabela do sistema está em Pré-visualização Pública. Para acessar a tabela, o esquema deve estar habilitado em seu catálogo system
. Para obter mais informações, consulte Habilitar esquemas de tabelas do sistema.
Este artigo descreve o esquema da tabela audit log e apresenta exemplos de consultas que o senhor pode usar com a tabela do sistema audit log para responder a perguntas comuns sobre a atividade account. Para obter informações sobre eventos de auditoria log, consulte Referência de auditoria log.
Caminho da tabela : Essa tabela do sistema está localizada em system.access.audit
.
Auditoria log considerações
- A maioria das auditorias logs está disponível apenas na região do workspace.
- account-level audit logs registro
workspace_id
como0
.
Auditoria log esquema de tabela do sistema
A tabela do sistema audit log usa o seguinte esquema:
Nome da coluna | Tipo de dados | Descrição | Exemplo |
---|---|---|---|
| string | ID do account |
|
| string | ID do workspace |
|
| string | Auditoria log versão do esquema |
|
| carimbo de data/hora | Carimbo de data e hora do evento. As informações de fuso horário são registradas no final do valor com |
|
| Data | Data do calendário em que a ação ocorreu |
|
| string | Endereço IP de origem da solicitação |
|
| string | Origem da solicitação |
|
| string | ID da sessão de onde veio a solicitação |
|
| struct | Identidade do usuário que está iniciando a solicitação |
|
| string | Nome do serviço que está iniciando a solicitação |
|
| string | Categoria do evento capturado na auditoria log |
|
| string | ID da solicitação |
|
| map | Mapa de valores key contendo todos os parâmetros da solicitação. Depende do tipo de solicitação |
|
| struct | Estrutura dos valores de retorno da resposta |
|
| string | evento em nível de espaço de trabalho ou account |
|
| string | ID do evento |
|
| struct | Identidades envolvidas na ação, incluindo |
|
Exemplos de consultas
As seções a seguir incluem exemplos de consultas em SQL que podem ser usadas para obter percepções sobre a tabela do sistema de auditoria logs.
Alguns exemplos incluem eventos de auditoria detalhada log, que não são habilitados pelo default. Para ativar o registro de auditoria detalhada em um workspace, consulte Ativar auditoria detalhada logs.
Este artigo inclui os seguintes exemplos de consultas:
- Quem pode acessar essa tabela?
- Quais usuários acessaram uma tabela nos últimos sete dias?
- Quais tabelas um usuário acessou recentemente?
- Exibir alterações de permissões para todos os objetos protegidos
- visualizar a execução mais recente do comando Notebook
- Quais usuários têm logins em um aplicativo Databricks?
- Quais aplicativos da Databricks foram atualizados para alterar a forma como o aplicativo é compartilhado com outros usuários ou grupos?
- Quais são os aplicativos Databricks criados mais recentemente?
- Quais são as ações mais recentes de um usuário do Databricks Apps?
Quem pode acessar essa tabela?
Essa consulta usa o information_schema
para determinar quais usuários têm permissões em uma tabela. Insira valores para os parâmetros do catálogo, do esquema e do nome da tabela.
SELECT DISTINCT(grantee), privilege_type, 'catalog' AS level
FROM system.information_schema.catalog_privileges
WHERE
catalog_name = :catalog_name
UNION
SELECT DISTINCT(grantee), privilege_type, 'schema' AS level
FROM system.information_schema.schema_privileges
WHERE
catalog_name = :catalog_name AND schema_name = :schema_name
UNION
SELECT DISTINCT(grantee) AS `accessible by`, privilege_type, 'table' AS level
FROM
system.information_schema.table_privileges
WHERE
table_catalog = :catalog_name AND table_schema = :schema_name AND table_name = :table_name
UNION
SELECT table_owner, 'ALL_PRIVILEGES' AS privilege_type, 'owner' AS level
FROM system.information_schema.tables
WHERE
table_catalog = :catalog_name AND table_schema = :schema_name AND table_name = :table_name
Quais usuários acessaram uma tabela nos últimos sete dias?
Para que essa consulta funcione, insira o caminho da tabela de informações nos parâmetros da consulta.
Os nomes completos não são capturados no site log para operações DML. Inclua o esquema e o nome simples para capturar tudo.
SELECT
user_identity.email as `User`,
IFNULL(
request_params.full_name_arg,
request_params.name
) AS `Table`,
action_name AS `Type of Access`,
event_time AS `Time of Access`
FROM
system.access.audit
WHERE
(
request_params.full_name_arg = :table_full_name
OR (
request_params.name = :table_name
AND request_params.schema_name = :schema_name
)
)
AND action_name IN ('createTable', 'getTable', 'deleteTable')
AND event_date > now() - interval 7 day
ORDER BY
event_date DESC
Quais tabelas um usuário acessou recentemente?
Para que essa consulta funcione, insira o endereço email do usuário no parâmetro :User
e um número no parâmetro :days_ago
.
SELECT
action_name as `EVENT`,
event_time as `WHEN`,
IFNULL(request_params.full_name_arg, 'Non-specific') AS `TABLE ACCESSED`,
IFNULL(request_params.commandText, 'GET table') AS `QUERY TEXT`
FROM
system.access.audit
WHERE
user_identity.email = :User
AND action_name IN (
'createTable',
'commandSubmit',
'getTable',
'deleteTable'
)
AND datediff(now(), event_date) < :days_ago
ORDER BY
event_date DESC
Exemplo de resultado
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Exibir alterações de permissões para todos os objetos protegidos
Essa consulta retornará um evento para cada alteração de permissão que tenha ocorrido em seu site account. A consulta retornará o usuário que fez a alteração, o tipo e o nome do objeto protegível e as alterações específicas que foram feitas.
SELECT event_time, user_identity.email, request_params.securable_type, request_params.securable_full_name, request_params.changes
FROM system.access.audit
WHERE service_name = 'unityCatalog'
AND action_name = 'updatePermissions'
ORDER BY 1 DESC
visualizar a execução mais recente do comando Notebook
Essa consulta retorna o comando do Notebook executado mais recentemente e o usuário que executou o comando.
A ação runCommand
só é emitida quando a auditoria detalhada logs está ativada. Para ativar os logs de auditoria detalhados, consulte Ativar logs de auditoria detalhados.
SELECT event_time, user_identity.email, request_params.commandText
FROM system.access.audit
WHERE action_name = `runCommand`
ORDER BY event_time DESC
LIMIT 100
Quais usuários têm logins em um aplicativo Databricks?
Essa consulta retorna um evento para cada login em uma instância do aplicativo Databricks.
SELECT
event_date,
workspace_id,
user_identity.email as user_email,
user_identity.subject_name as username
FROM
system.access.audit
WHERE
action_name IN ("workspaceInHouseOAuthClientAuthentication", "mintOAuthToken", "mintOAuthAuthorizationCode")
AND
request_params["client_id"] = "<oauth2-app-client-id>"
GROUP BY
event_date,
workspace_id,
user_email,
username
Substitua <oauth2-app-client-id>
pelo valor de ID do cliente do aplicativo OAuth2 para a entidade de serviço atribuída a um aplicativo específico da Databricks. Esse valor pode ser encontrado nas configurações de administração do Databricks workspace que hospeda o aplicativo ou na Autorização tab quando o senhor view os detalhes de um aplicativo.
Quais aplicativos da Databricks foram atualizados para alterar a forma como o aplicativo é compartilhado com outros usuários ou grupos?
Essa consulta retorna eventos de atualizações de permissão para alterar o acesso aos aplicativos da Databricks, incluindo o tipo de permissão, o usuário ou grupo ao qual a nova permissão é atribuída e o usuário que enviou a alteração.
SELECT
event_date,
workspace_id,
request_params['request_object_id'] as app,
user_identity['email'] as sharing_user,
acl_entry['group_name'],
acl_entry['user_name'],
acl_entry['permission_level']
FROM
system.access.audit t
LATERAL VIEW
explode(from_json(request_params['access_control_list'], 'array<struct<user_name:string,permission_level:string,group_name:string>>')) acl_entry AS acl_entry
WHERE
action_name = 'changeAppsAcl'
AND
request_params['request_object_type'] = 'apps'
ORDER BY
event_date DESC
Quais são os aplicativos Databricks criados mais recentemente?
Essa consulta retorna eventos de criação do aplicativo, incluindo o nome, o criador e a data de criação do aplicativo, classificados pela data e hora do evento de criação.
SELECT
event_time,
user_identity.email AS email,
action_name,
get_json_object(request_params.app, '$.name') AS app_name
FROM
system.access.audit
WHERE
action_name == "createApp"
ORDER BY
event_time DESC
Quais são as ações mais recentes de um usuário do Databricks Apps?
Essa consulta retorna as ações recentes de um usuário do Databricks Apps, classificadas pelo carimbo de data/hora do evento.
SELECT
event_time,
user_identity.email AS email,
service_name,
action_name
FROM
system.access.audit
WHERE
service_name = 'apps'
AND
user_identity.email = '<user-email>'
ORDER BY
event_time DESC