Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze functie bevindt zich in de bètaversie. Accountbeheerders kunnen de toegang tot deze functie beheren via de pagina Previews van de accountconsole. Zie Azure Databricks previews beheren.
Een aangepast servicebeleid is een door de gebruiker gedefinieerde SQL-functie (UDF) die is geregistreerd in Unity Catalog die Azure Databricks evalueert op elke interactie met de service waaraan deze is gekoppeld. Deze pagina is het veld en de syntaxisverwijzing voor deze functies. Zie Een servicebeleid maken en koppelen voor de end-to-end-procedure.
Functiesignatuur
Een servicebeleidsfunctie gebruikt één eventVARIANT parameter en retourneert een VARIANT:
CREATE OR REPLACE FUNCTION <catalog>.<schema>.<function_name>(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN <expression>;
De functie wordt uitgevoerd op beide evaluatiepunten. Vertakking aan event:type::string om ze apart te vertellen:
-
'request': de invoerfase (ON CALL), voordat de dienst wordt opgeroepen. -
'response': de uitvoerfase (ON RESULT), nadat de dienst reageert.
Het event argument
event draagt de interactiegegevens en context. De beschikbare velden zijn afhankelijk van het servicetype:
| Veld | Van toepassing op: | Description |
|---|---|---|
event:type |
Alle services | De fase: 'request' (invoer, ON CALL) of 'response' (output, ON RESULT). |
event:target |
Alle services | De volledige naam van de Unity Catalog van de service waaraan het beleid is gekoppeld (optioneel). |
event:context.actor.run_as |
Alle services | De run-as-identiteit waarvoor de aanvraag toestemming geeft. |
event:context.actor.context.is_on_behalf_of |
Alle services |
true wanneer een agent of app namens een gebruiker handelt (namens of OBO). Gebruik dit om agentbewust beleid te schrijven dat alleen van toepassing is wanneer een agent voor een gebruiker handelt. |
event:context.actor.context.client_id |
Alle services | De OAuth-client-id van de actieve identiteit, indien aanwezig (OBO-aanroepen). |
event:context.actor.context.actor_resource |
Alle services | De resource van de actieve identiteit, zoals een agent, wanneer deze aanwezig is. |
event:context.actor.context.is_actor_authenticated |
Alle services |
true wanneer de actieve identiteit is geverifieerd als een vertrouwelijke client. |
event:context.tool.name, event:context.tool.arguments |
MCP-services | Het hulpprogramma dat wordt aangeroepen en de bijbehorende argumenten (bijvoorbeeld event:context.tool.arguments.repo). |
event:context.message |
ModelServices, Model Provider Services | Het geëxtraheerde laatste gebruikers- of assistentbericht (API-agnostisch). Gebruik dit voor inhoudscontroles. |
event:data |
ModelServices, Model Provider Services | De volledige nettolading van de aanvraag of het antwoord. |
event:request_data |
ModelServices, Model Provider Services | Het oorspronkelijke verzoek, beschikbaar tijdens de uitvoerfase (ON RESULT). |
Note
Padtoegang (event:...) retourneert een VARIANT. Cast het naar een scalaire type voordat u het vergelijkt met een letterlijke waarde (bijvoorbeeld event:type::string = 'request'); anders mislukt de vergelijking met een DATATYPE_MISMATCH fout.
Retourwaarde
Een aangepast beleid is een beslissingsbeleid: het retourneert een VARIANT met een result veld van ALLOW, DENYof ASK (niet hoofdlettergevoelig) en een optioneel reason. De result waarde bepaalt wat er gebeurt:
-
ALLOW: de interactie wordt voortgezet. -
DENY: Azure Databricks blokkeert de interactie. In plaats van een fout ontvangt de aanroeper een succesvol (HTTP 200) antwoord waarvan de assistent-beurt het blok rapporteert, waarbij dereasonin een topniveauobjectdatabricks_service_policyis. -
ASK: de interactie wordt onderbroken voor menselijke goedkeuring voordat u doorgaat.
Bouw het resultaat met named_struct en verpakt het in to_variant_object , zodat de functie een VARIANTvelden result op het hoogste niveau retourneert en reason als velden op het hoogste niveau retourneert. Een lege named_struct waarde retourneert een STRUCT, en CAST(... AS VARIANT) wordt niet ondersteund.
to_variant_object(named_struct('result', 'DENY', 'reason', 'GitHub push operations are not permitted by policy.'))
De gateway accepteert ook een naar voren ogend envelopformulier:
to_variant_object(named_struct('decision', named_struct('result', 'DENY', 'reason', '...')))
Note
Niet-gesloten veldtoegang: als u een veld opent dat niet in de VARIANT parameter voorkomt, treedt er een fout op en resulteert dit in DENY (standaard SQL-toegang VARIANT retourneert NULL voor ontbrekende velden). Hiermee voorkomt u dat een beleid een interactie toestaat wanneer verwachte velden ontbreken.
Ondersteunde SQL
Azure Databricks de beleidsbody naar CEL transpileert en deze tijdens runtime evalueert, ondersteunt de hoofdtekst van de functie dus slechts een beperkte subset van SQL. Azure Databricks weigert een niet-ondersteunde functie of constructie wanneer u het beleid koppelt, en het beleid mislukt (DENY) tijdens de evaluatie.
| Categorie | Ondersteund in de hoofdtekst van het beleid |
|---|---|
| Operatoren | Vergelijkings-, logische en rekenkundige operatoren; \|\|, , INLIKEenIS [NOT] NULL |
| Besturing van de stroom |
CASE en IF |
| Werpt |
CASTaan INT/BIGINT, DOUBLE/FLOAT, STRINGof BOOLEAN; de operator :: |
| Toegang tot gegevens | VARIANT/JSON-padtoegang |
| Stringfuncties |
CONCAT, , LENGTH, , , , CHAR_LENGTH, UPPER, LOWER, SUBSTRINGTRIMLTRIMRTRIMREPLACESTARTSWITHENDSWITHCONTAINS |
| Andere functies |
COALESCE, , NULLIF, IFNULLNVL, , ABS, MOD, , ISNULLISNOTNULLNAMED_STRUCTTO_VARIANT_OBJECT |
Niet ondersteund:ai_query, subquery's, BETWEENstatistische functies, lambdas / EXISTS, en variadic CONCAT of COALESCE.