Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esse recurso está em Beta. Os administradores de conta podem controlar o acesso a esse recurso na página Visualizações do console da conta. Consulte Gerenciar visualizações do Azure Databricks.
Uma política de serviço personalizada é uma UDF (função definida pelo usuário) do SQL registrada no Catálogo do Unity que Azure Databricks avalia em cada interação com o serviço ao qual está anexada. Esta página é a referência de campo e sintaxe para essas funções. Para o procedimento de ponta a ponta, consulte Criar e anexar uma política de serviço.
Assinatura de função
Uma função de política de serviço usa um único eventVARIANT parâmetro e retorna um VARIANT:
CREATE OR REPLACE FUNCTION <catalog>.<schema>.<function_name>(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN <expression>;
A função é executada em ambos os pontos de avaliação.
event:type::string Ramificar para diferenciá-los:
-
'request': a fase de entrada (ON CALL), antes que o serviço seja invocado. -
'response': a fase de saída (ON RESULT), após a resposta do serviço.
O event argumento
event carrega os dados de interação e o contexto. Os campos disponíveis dependem do tipo de serviço:
| Campo | Aplica-se a | Descrição |
|---|---|---|
event:type |
Todos os serviços | A fase: 'request' (entrada, EM CHAMADA) ou 'response' (saída, EM RESULTADO). |
event:target |
Todos os serviços | O nome completo do Catálogo do Unity do serviço ao qual a política está anexada (opcional). |
event:context.actor.run_as |
Todos os serviços | A identidade executar como a qual a solicitação autoriza. |
event:context.actor.context.is_on_behalf_of |
Todos os serviços |
true quando um agente ou aplicativo está agindo em nome de um usuário (em nome ou OBO). Use-o para gravar políticas com reconhecimento de agente que se aplicam somente quando um agente age para um usuário. |
event:context.actor.context.client_id |
Todos os serviços | A ID do cliente OAuth da identidade de atuação, quando presente (chamadas OBO). |
event:context.actor.context.actor_resource |
Todos os serviços | O recurso da identidade de atuação, como um agente, quando presente. |
event:context.actor.context.is_actor_authenticated |
Todos os serviços |
true quando a identidade de atuação é autenticada como um cliente confidencial. |
event:context.tool.name, event:context.tool.arguments |
Serviços MCP | A ferramenta que está sendo chamada e seus argumentos (por exemplo, event:context.tool.arguments.repo). |
event:context.message |
Serviços de Modelo, Serviços de Provedor de Modelos | A última mensagem de usuário ou assistente extraída (independente de API). Use isso para verificações de conteúdo. |
event:data |
Serviços de Modelo, Serviços de Provedor de Modelos | O conteúdo completo de solicitação ou resposta. |
event:request_data |
Serviços de Modelo, Serviços de Provedor de Modelos | A solicitação original, disponível durante a fase de saída (NO RESULTADO). |
Note
O acesso ao caminho (event:...) retorna um VARIANT. Converta-o em um tipo escalar antes de compará-lo a um literal (por exemplo, ); caso contrário, event:type::string = 'request'a comparação falhará com um DATATYPE_MISMATCH erro.
Valor de retorno
Uma política personalizada é uma Política de Decisão: ela retorna um com um VARIANTresult campo de ALLOW, DENYou ASK (não diferencia maiúsculas de minúsculas) e um opcional reason. O result valor determina o que acontece:
-
ALLOW: a interação continua. -
DENY: Azure Databricks bloqueia a interação. Em vez de um erro, o chamador recebe uma resposta bem-sucedida (HTTP 200) cujo turno assistente reporta o bloqueio, com oreasonem um objeto de nível superiordatabricks_service_policy. -
ASK: a interação pausa para aprovação humana antes de prosseguir.
Compile o resultado com named_struct e embrulhe-o para que to_variant_object a função retorne um VARIANTcampo , mantendo result e reason como de nível superior. Um bare named_struct retorna um STRUCTe CAST(... AS VARIANT) não tem suporte.
to_variant_object(named_struct('result', 'DENY', 'reason', 'GitHub push operations are not permitted by policy.'))
O gateway também aceita um formulário de envelope futuro:
to_variant_object(named_struct('decision', named_struct('result', 'DENY', 'reason', '...')))
Note
Acesso a campo fechado por falha: acessar um campo que não existe no VARIANT parâmetro gera um erro e resulta em DENY (o acesso SQL VARIANT padrão retorna NULL para campos ausentes). Isso impede que uma política permita uma interação quando os campos esperados estão ausentes.
SQL suportado
Azure Databricks transpila o corpo da política para CEL e o avalia em runtime, de modo que o corpo da função dá suporte apenas a um subconjunto restrito do SQL. Azure Databricks rejeita uma função ou construção sem suporte quando você anexa a política e a política falha ao fechar (DENY) na avaliação.
| Categoria | Com suporte no corpo da política |
|---|---|
| Operators | Operadores de comparação, lógicos e aritméticos; \|\|, INe LIKEIS [NOT] NULL |
| Fluxo de controle |
CASE e IF |
| Conversões |
CASTpara INT/BIGINT, DOUBLE/FLOAT, STRINGou BOOLEAN; o operador :: |
| Acesso a dados | Acesso ao caminho VARIANT/JSON |
| Funções de cadeia de caracteres |
CONCAT, LENGTH, CHAR_LENGTH, UPPER, , LOWER, SUBSTRING, , TRIM, LTRIM, RTRIM, REPLACE, , STARTSWITH, , ENDSWITHCONTAINS |
| Outras funções |
COALESCE, NULLIF, IFNULL, NVL, ABS, , MOD, ISNULL, , ISNOTNULL, NAMED_STRUCT, TO_VARIANT_OBJECT |
Sem suporte:ai_query, subconsultas, BETWEENfunções de agregação, lambdas/ EXISTSe variadic CONCAT ou COALESCE.