Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Växla tjänster genom att använda listrutan Version. Läs mer om navigering.
Gäller för: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Frågor som skickas till Kusto kan innehålla en uppsättning namn- eller värdepar. Paren kallas frågeparametrar, tillsammans med själva frågetexten. Frågan kan referera till ett eller flera värden genom att ange namn och typ i en deklarationsuttryck för frågeparametrar.
Frågeparametrar har två huvudsakliga användningsområden:
- Som en skyddsmekanism mot inmatningsattacker.
- Som ett sätt att parametrisera frågor.
I synnerhet bör klientprogram som kombinerar användarindata i frågor som de sedan skickar till Kusto använda mekanismen för att skydda mot Kusto-motsvarigheten till SQL-inmatningsattacker .
Deklarera frågeparametrar
Om du vill referera till frågeparametrar måste frågetexten eller funktionerna den använder först deklarera vilken frågeparameter den använder. För varje parameter innehåller deklarationen namn och skalär typ. Parametern kan också ha ett standardvärde. Standardvärdet används om begäran inte ger något konkret värde för parametern. Kusto parsar sedan frågeparameterns värde enligt dess normala parsningsregler för den typen.
Syntax
declare
query_parameters
(
Namn 1:Type1 [=DefaultValue1] [,...] );
Läs mer om syntaxkonventioner.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Name1 | string |
✔️ | Namnet på en frågeparameter som används i frågan. |
| Type1 | string |
✔️ | Motsvarande typ, till exempel string eller datetime. Värdena som tillhandahålls av användaren kodas som strängar. Lämplig parsningsmetod tillämpas på frågeparametern för att få ett starkt skrivet värde. |
| DefaultValue1 | string |
Ett standardvärde för parametern. Det här värdet måste vara en literal av lämplig skalartyp. |
Note
- Precis som användardefinierade funktionerkan frågeparametrar av typen
dynamicinte ha standardvärden. - Let, set och tabular-instruktioner är sammanspända/avgränsade med ett semikolon, annars betraktas de inte som en del av samma fråga.
Example
Exemplen i det här avsnittet visar hur du använder syntaxen för att komma igång.
Exemplen i den här artikeln använder offentligt tillgängliga tabeller i hjälpklustret, till exempel
StormEventstabellen i exempeldatabasen .
Exemplen i den här artikeln använder offentligt tillgängliga tabeller, till exempel
Weathertabellen i exempelgalleriet Väderanalys. Du kan behöva ändra tabellnamnet i exempelfrågan för att matcha tabellen på din arbetsyta.
Deklarera frågeparametrar
Den här frågan hämtar stormhändelser från tabellen StormEvents där det totala antalet direkta och indirekta skador överskrider ett angivet tröskelvärde (standardvärdet är 90). Sedan projiceras EpisodeId, EventType och det totala antalet skador för var och en av dessa händelser.
declare query_parameters(maxInjured:long = 90);
StormEvents
| where InjuriesDirect + InjuriesIndirect > maxInjured
| project EpisodeId, EventType, totalInjuries = InjuriesDirect + InjuriesIndirect
Output
| EpisodeId | EventType | totalInjuries |
|---|---|---|
| 12459 | Vinterväder | 137 |
| 10477 | Överdriven värme | 200 |
| 10391 | Heat | 187 |
| 10217 | Överdriven värme | 422 |
| 10217 | Överdriven värme | 519 |
Ange frågeparametrar i ett klientprogram
Namn och värden för frågeparametrar anges som string värden av programmet som gör frågan. Inget namn får upprepas.
Tolkningen av värdena görs enligt deklarationssatsen för frågeparametrar. Varje värde parsas som om det vore en literal i en frågas brödtext. Parsningen görs enligt den typ som anges av deklarationssatsen för frågeparametrar.
REST API
Frågeparametrar tillhandahålls av klientprogram via properties plats för begärandetextens JSON-objekt i en kapslad egenskapsväska med namnet Parameters. Här är till exempel brödtexten i ett REST API-anrop till Kusto som beräknar ålder för en viss användare, förmodligen genom att programmet ber om användarens födelsedag.
{
"ns": null,
"db": "myDB",
"csl": "declare query_parameters(birthday:datetime); print strcat(\"Your age is: \", tostring(now() - birthday))",
"properties": "{\"Options\":{},\"Parameters\":{\"birthday\":\"datetime(1970-05-11)\",\"courses\":\"dynamic(['Java', 'C++'])\"}}"
}
Kusto SDK:er
Information om hur du anger namn och värden för frågeparametrar när du använder Kusto-klientbibliotek finns i Använda frågeparametrar för att skydda användarindata.
Kusto.Explorer
Om du vill ange de frågeparametrar som skickas när du skickar en begäran till tjänsten använder du ikonen "skiftnyckel" för frågeparametrar (ALT + P).