Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 obiektemreasonnajwyższego poziomudatabricks_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.