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.
Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Query's die naar Kusto worden verzonden, kunnen een set naam- of waardeparen bevatten. De paren worden queryparameters genoemd, samen met de querytekst zelf. De query kan verwijzen naar een of meer waarden door namen en typen op te geven in een declaratie-instructie van queryparameters.
Queryparameters hebben twee hoofdgebruiken:
- Als beschermingsmechanisme tegen injectieaanvallen.
- Als een manier om query's te parameteriseren.
Clienttoepassingen die door de gebruiker geleverde invoer combineren in query's die ze vervolgens naar Kusto verzenden, moeten het mechanisme gebruiken om te beschermen tegen het Kusto-equivalent van SQL-injectieaanvallen .
Queryparameters declareren
Als u wilt verwijzen naar queryparameters, de querytekst of functies die worden gebruikt, moet u eerst declareren welke queryparameter wordt gebruikt. Voor elke parameter geeft de declaratie de naam en het scalaire type op. Optioneel kan de parameter ook een standaardwaarde hebben. De standaardwaarde wordt gebruikt als de aanvraag geen concrete waarde voor de parameter biedt. Kusto parseert vervolgens de waarde van de queryparameter volgens de normale parseringsregels voor dat type.
Syntax
declare
query_parameters
(
Naam1:Type1 [=DefaultValue1] [,...] );
Meer informatie over syntaxisconventies.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Name1 | string |
✔️ | De naam van een queryparameter die in de query wordt gebruikt. |
| Type1 | string |
✔️ | Het bijbehorende type, zoals string of datetime. De waarden die door de gebruiker worden opgegeven, worden gecodeerd als tekenreeksen. De juiste parseringsmethode wordt toegepast op de queryparameter om een sterk getypte waarde op te halen. |
| DefaultValue1 | string |
Een standaardwaarde voor de parameter. Deze waarde moet een letterlijke waarde van het juiste scalaire type zijn. |
Note
- Net zoals door de gebruiker gedefinieerde functies, kunnen queryparameters van het type
dynamicgeen standaardwaarden hebben. - Laten, instellen en tabellaire instructies worden samengevoegd/gescheiden door een puntkomma, anders worden ze niet beschouwd als onderdeel van dezelfde query.
Example
In de voorbeelden in deze sectie ziet u hoe u de syntaxis kunt gebruiken om aan de slag te gaan.
In de voorbeelden in dit artikel worden openbaar beschikbare tabellen in het Help-cluster gebruikt, zoals de
StormEventstabel in de database Voorbeelden .
In de voorbeelden in dit artikel worden openbaar beschikbare tabellen gebruikt, zoals de
Weathertabel in de galerie Met weather analytics-voorbeelden. Mogelijk moet u de tabelnaam in de voorbeeldquery wijzigen zodat deze overeenkomt met de tabel in uw werkruimte.
Queryparameters declareren
Met deze query worden stormgebeurtenissen opgehaald uit de tabel StormEvents , waarbij het totale aantal directe en indirecte verwondingen een opgegeven drempelwaarde overschrijdt (de standaardwaarde is 90). Vervolgens wordt de EpisodeId, EventType en het totale aantal verwondingen voor elk van deze gebeurtenissen geprojecteerd.
declare query_parameters(maxInjured:long = 90);
StormEvents
| where InjuriesDirect + InjuriesIndirect > maxInjured
| project EpisodeId, EventType, totalInjuries = InjuriesDirect + InjuriesIndirect
Output
| EpisodeId | EventType | totalInjuries |
|---|---|---|
| 12459 | Winterweer | 137 |
| 10477 | Overmatige hitte | 200 |
| 10391 | Heat | 187 |
| 10217 | Overmatige hitte | 422 |
| 10217 | Overmatige hitte | 519 |
Queryparameters opgeven in een clienttoepassing
De namen en waarden van queryparameters worden geleverd als string waarden door de toepassing die de query maakt. Er mag geen naam worden herhaald.
De interpretatie van de waarden wordt uitgevoerd volgens de declaratie-instructie queryparameters. Elke waarde wordt geparseerd alsof deze een letterlijke waarde is in de hoofdtekst van een query. Het parseren wordt uitgevoerd op basis van het type dat is opgegeven door de declaratie-instructie queryparameters.
REST API
Queryparameters worden geleverd door clienttoepassingen via de properties-site van het JSON-object van de aanvraagbody, in een geneste eigenschapszak met de naam Parameters. Hier volgt bijvoorbeeld de hoofdtekst van een REST API-aanroep naar Kusto die de leeftijd van een bepaalde gebruiker berekent, waarschijnlijk door de toepassing te laten vragen om de verjaardag van de gebruiker.
{
"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's
Zie Queryparameters gebruiken om gebruikersinvoer te beveiligen voor meer informatie over het opgeven van de namen en waarden van queryparameters bij het gebruik van Kusto-clientbibliotheken.
Kusto.Explorer
Als u de queryparameters wilt instellen die worden verzonden bij het indienen van een aanvraag naar de service, gebruikt u het pictogram 'wrench' van queryparameters (ALT + P).