Dokumentacja funkcji zasad usługi

Important

Ta funkcja jest dostępna w wersji beta. Administratorzy kont mogą kontrolować dostęp do tej funkcji ze strony podglądów konsoli konta. Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Niestandardowe zasady usługi to funkcja zdefiniowana przez użytkownika SQL (UDF) zarejestrowana w katalogu aparatu Unity, która Azure Databricks ocenia każdą interakcję z usługą, do której jest dołączona. Ta strona jest polem i dokumentacją składni dla tych funkcji. Aby zapoznać się z kompleksową procedurą, zobacz Tworzenie i dołączanie zasad usługi.

Sygnatura funkcji

Funkcja zasad usługi przyjmuje jeden eventVARIANT parametr i zwraca wartość VARIANT:

CREATE OR REPLACE FUNCTION <catalog>.<schema>.<function_name>(
  event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN <expression>;

Funkcja jest uruchamiana w obu punktach oceny. Rozgałęzij, event:type::string aby je odróżnić:

  • 'request': faza wejściowa (ON CALL), przed uruchomieniem usługi.
  • 'response': faza wyjściowa (WYNIK ON), po odpowiedzi usługi.

Argument event

event prowadzi dane interakcji i kontekst. Dostępne pola zależą od typu usługi:

Pole Dotyczy Opis
event:type Wszystkie usługi Faza: 'request' (wejście, NA POŁĄCZENIU) lub 'response' (wyjście, WYNIK ON).
event:target Wszystkie usługi Pełna nazwa usługi katalogu aparatu Unity, do którego są dołączone zasady (opcjonalnie).
event:context.actor.run_as Wszystkie usługi Tożsamość Uruchom jako, względem którego żądanie jest autoryzowane.
event:context.actor.context.is_on_behalf_of Wszystkie usługi true gdy agent lub aplikacja działa w imieniu użytkownika (w imieniu użytkownika lub OBO). Służy do pisania zasad obsługujących agentów, które mają zastosowanie tylko wtedy, gdy agent działa dla użytkownika.
event:context.actor.context.client_id Wszystkie usługi Identyfikator klienta OAuth działającej tożsamości, gdy jest obecny (wywołania OBO).
event:context.actor.context.actor_resource Wszystkie usługi Zasób tożsamości działającej, takiej jak agent, gdy jest obecny.
event:context.actor.context.is_actor_authenticated Wszystkie usługi true w przypadku uwierzytelnienia tożsamości działającej jako poufnego klienta.
event:context.tool.name, event:context.tool.arguments Usługi MCP Wywoływane narzędzie i jego argumenty (na przykład event:context.tool.arguments.repo).
event:context.message Usługi modelu, usługi dostawcy modeli Wyodrębniony ostatni komunikat użytkownika lub asystenta (niezależny od interfejsu API). Użyj go do sprawdzania zawartości.
event:data Usługi modelu, usługi dostawcy modeli Pełny ładunek żądania lub odpowiedzi.
event:request_data Usługi modelu, usługi dostawcy modeli Oryginalne żądanie, dostępne podczas fazy wyjściowej (ON RESULT).

Note

Dostęp do ścieżki (event:...) zwraca wartość VARIANT. Rzutuj go na typ skalarny przed porównaniem go z literałem (na przykład event:type::string = 'request'); w przeciwnym razie porównanie kończy się niepowodzeniem z błędem DATATYPE_MISMATCH .

Wartość zwracana

Zasady niestandardowe są zasadami decyzyjnymi: zwraca VARIANT wartość z polem resultALLOW, DENYlub ASK (bez uwzględniania wielkości liter) i opcjonalnym reasonelementem . Wartość result określa, co się stanie:

  • ALLOW: interakcja jest kontynuowana.
  • DENY: Azure Databricks blokuje interakcję. Zamiast błędu, wywołujący otrzymuje pomyślną odpowiedź (HTTP 200), której asystent raportuje blok, z obiektem reason najwyższego poziomu databricks_service_policy .
  • ASK: interakcja wstrzymuje się w celu zatwierdzenia przez człowieka przed kontynuowaniem.

Skompiluj wynik za pomocą named_struct polecenia i zawijaj go, to_variant_object aby funkcja zwracała VARIANTpola , zachowując result wartości i reason jako pola najwyższego poziomu. Nagie named_struct zwraca wartość STRUCTi CAST(... AS VARIANT) nie jest obsługiwana.

to_variant_object(named_struct('result', 'DENY', 'reason', 'GitHub push operations are not permitted by policy.'))

Brama akceptuje również formularz koperty z przyszłością:

to_variant_object(named_struct('decision', named_struct('result', 'DENY', 'reason', '...')))

Note

Dostęp do pola zamkniętego niepowodzeniem: uzyskiwanie dostępu do pola, które nie istnieje w parametrze VARIANT , zgłasza błąd i powoduje DENY zwrócenie (standardowy dostęp SQL VARIANT zwraca NULL brakujące pola). Uniemożliwia to zasadom zezwolenie na interakcję, gdy brakuje oczekiwanych pól.

Obsługiwana baza danych SQL

Azure Databricks transpiluje treść zasad cel i ocenia ją w czasie wykonywania, więc treść funkcji obsługuje tylko ograniczony podzbiór sql. Azure Databricks odrzuca nieobsługiwaną funkcję lub konstrukcję podczas dołączania zasad, a zasady kończą się niepowodzeniem (DENY) podczas oceny.

Kategoria Obsługiwane w treści zasad
Operatorów Operatory porównania, logiczne i arytmetyczne; \|\|, IN, LIKEi IS [NOT] NULL
Sterowanie przebiegiem CASE i IF
Rzutowanie CASTdo INT/BIGINT, DOUBLE/FLOAT, STRINGlub BOOLEAN; operator ::
Dostęp do danych DOSTĘP DO ŚCIEŻKI VARIANT/JSON
Funkcje łańcuchów znakowych CONCAT, LENGTH, , , CHAR_LENGTHUPPERLOWERSUBSTRINGTRIMLTRIMRTRIMREPLACESTARTSWITHENDSWITHCONTAINS
Inne funkcje COALESCE, NULLIF, , , IFNULLNVLABSMODISNULLISNOTNULLNAMED_STRUCTTO_VARIANT_OBJECT

Nieobsługiwane:ai_query, podzapytania, BETWEEN, funkcje agregujące, lambdy / EXISTSi variadyczne CONCAT lub COALESCE.