sql_request-plugin-program
Plugin-programmet sql_request
skickar en SQL-fråga till en SQL Server nätverksslutpunkt och returnerar resultatet.
Om fler än en raduppsättning returneras av SQL används bara den första.
Plugin-programmet anropas med operatorn evaluate
.
Syntax
evaluate
sql_request
(
Connectionstring,
SqlQuery [,
SqlParameters [,
Alternativ]] )
[:
OutputSchema]
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Connectionstring | string |
✔️ | Den anslutningssträng som pekar på SQL Server nätverksslutpunkt. Se giltiga autentiseringsmetoder och hur du anger nätverksslutpunkten. |
SqlQuery | string |
✔️ | Frågan som ska köras mot SQL-slutpunkten. Frågan måste returnera en eller flera raduppsättningar, men endast den första görs tillgänglig för resten av Kusto-frågan. |
SqlParameters | dynamic |
En egenskapsuppsättning med nyckel/värde-par som ska skickas som parametrar tillsammans med frågan. | |
Alternativ | dynamic |
En egenskapsuppsättning med nyckel/värde-par för att skicka mer avancerade inställningar tillsammans med frågan. För närvarande kan endast token anges för att skicka en anropare som tillhandahålls Microsoft Entra åtkomsttoken som vidarebefordras till SQL-slutpunkten för autentisering. |
|
OutputSchema | string |
Namn och typer för de förväntade kolumnerna i plugin-programmets sql_request utdata. Använd följande syntax: ( ColumnName: ColumnType [, ...] ) . |
Anteckning
- Vi rekommenderar att du anger OutputSchema eftersom det gör att plugin-programmet kan användas i scenarier som annars inte fungerar utan det, till exempel en fråga mellan kluster. OutputSchema kan också aktivera flera frågeoptimeringar.
- Ett fel utlöses om körningsschemat för den första raduppsättningen som returneras av SQL-nätverksslutpunkten inte matchar OutputSchema-schemat .
Autentisering och auktorisering
Plugin-programmet sql_request stöder följande tre autentiseringsmetoder för SQL Server-slutpunkten.
Autentiseringsmetod | Syntax | Hur | Description |
---|---|---|---|
Microsoft Entra integrerad | Authentication="Active Directory Integrated" |
Lägg till i parametern ConnectionString . | Det här är den föredragna autentiseringsmetoden. Användaren eller programmet autentiseras via Microsoft Entra ID till klustret och samma token används för att komma åt SQL Server nätverksslutpunkt. Huvudkontot måste ha rätt behörigheter för SQL-resursen för att utföra den begärda åtgärden. Om du till exempel vill läsa från databasen behöver huvudkontot tabell SELECT-behörigheter och för att skriva till en befintlig tabell behöver huvudkontot UPDATE- och INSERT-behörigheter. För att skriva till en ny tabell krävs även CREATE-behörigheter. |
Användarnamn och lösenord | User ID=...; Password=...; |
Lägg till i parametern ConnectionString . | Undvik den här metoden när det är möjligt eftersom den kan vara mindre säker. |
Microsoft Entra åtkomsttoken | dynamic({'token': h"eyJ0..."}) |
Lägg till parametern Alternativ . | Åtkomsttoken skickas som token egenskap i argumentet Alternativ för plugin-programmet. |
Anteckning
Anslutningssträngar och frågor som innehåller konfidentiell information eller information som ska skyddas bör döljas för att utelämnas från kusto-spårning. Mer information finns i dolda strängliteraraler.
Exempel
Skicka en SQL-fråga med hjälp av Microsoft Entra integrerad autentisering
I följande exempel skickas en SQL-fråga till en Azure SQL DB-databas. Den hämtar alla poster från [dbo].[Table]
och bearbetar sedan resultaten på Kusto-sidan. Autentisering återanvänder den anropande användarens Microsoft Entra token.
Anteckning
Det här exemplet bör inte användas som en rekommendation för att filtrera eller projektdata på det här sättet. SQL-frågor bör konstrueras för att returnera den minsta möjliga datamängden.
evaluate sql_request(
'Server=tcp:contoso.database.windows.net,1433;'
'Authentication="Active Directory Integrated";'
'Initial Catalog=Fabrikam;',
'select * from [dbo].[Table]') : (Id:long, Name:string)
| where Id > 0
| project Name
Skicka en SQL-fråga med hjälp av autentisering med användarnamn/lösenord
Följande exempel är identiskt med det föregående, förutom att SQL-autentisering görs med användarnamn/lösenord. För konfidentialitet använder vi dolda strängar här.
evaluate sql_request(
'Server=tcp:contoso.database.windows.net,1433;'
'Initial Catalog=Fabrikam;'
h'User ID=USERNAME;'
h'Password=PASSWORD;',
'select * from [dbo].[Table]') : (Id:long, Name:string)
| where Id > 0
| project Name
Skicka en SQL-fråga med hjälp av en Microsoft Entra åtkomsttoken
I följande exempel skickas en SQL-fråga till en Azure SQL databas som hämtar alla poster från [dbo].[Table]
och lägger till en annan datetime
kolumn och bearbetar sedan resultaten på Kusto-sidan.
Den anger en SQL-parameter (@param0
) som ska användas i SQL-frågan.
evaluate sql_request(
'Server=tcp:contoso.database.windows.net,1433;'
'Authentication="Active Directory Integrated";'
'Initial Catalog=Fabrikam;',
'select *, @param0 as dt from [dbo].[Table]',
dynamic({'param0': datetime(2020-01-01 16:47:26.7423305)})) : (Id:long, Name:string, dt: datetime)
| where Id > 0
| project Name
Skicka en SQL-fråga utan ett frågedefinierat utdataschema
I följande exempel skickas en SQL-fråga till en Azure SQL databas utan ett utdataschema. Detta rekommenderas inte om inte schemat är okänt, eftersom det kan påverka frågans prestanda
evaluate sql_request(
'Server=tcp:contoso.database.windows.net,1433;'
'Initial Catalog=Fabrikam;'
h'User ID=USERNAME;'
h'Password=PASSWORD;',
'select * from [dbo].[Table]')
| where Id > 0
| project Name
Kryptering och servervalidering
Följande anslutningsegenskaper framtvingas vid anslutning till en SQL Server nätverksslutpunkt av säkerhetsskäl.
Encrypt
villkorslösttrue
.TrustServerCertificate
villkorslöstfalse
.
Därför måste SQL Server konfigureras med ett giltigt SSL/TLS-servercertifikat.
Ange nätverksslutpunkten
Det är obligatoriskt att ange SQL-nätverksslutpunkten som en del av anslutningssträng. Lämplig syntax är:
Server
=
tcp:
FQDN [,
port]
Plats:
- FQDN är slutpunktens fullständigt kvalificerade domännamn.
- Port är TCP-porten för slutpunkten. Som standard
1433
antas.
Anteckning
Andra former av att ange nätverksslutpunkten stöds inte.
Man kan till exempel inte utelämna prefixet tcp:
även om det går att göra det när du använder SQL-klientbiblioteken programmatiskt.
Den här funktionen stöds inte i Azure Monitor
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för