sql_request beépülő modul

A sql_request beépülő modul sql-lekérdezést küld egy SQL Server hálózati végpontnak, és visszaadja az eredményeket. Ha az SQL több sorkészletet ad vissza, csak az elsőt használja a rendszer. A beépülő modul meghívása az evaluate operátorral történik.

Syntax

evaluatesql_request(ConnectionString,SqlQuery [,SqlParameters [,Beállítások]] ) [:OutputSchema]

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
ConnectionString string ✔️ A SQL Server hálózati végpontra mutató kapcsolati karakterlánc. Tekintse meg az érvényes hitelesítési módszereket és a hálózati végpont megadásának módját.
SqlQuery string ✔️ Az SQL-végponton végrehajtandó lekérdezés. A lekérdezésnek egy vagy több sorkészletet kell visszaadnia, de csak az elsőt kell elérhetővé tenni a Kusto-lekérdezés többi része számára.
SqlParameters dynamic Kulcs-érték párok tulajdonságcsomagja, amely paraméterekként és a lekérdezéssel együtt továbbítandó.
Beállítások dynamic Kulcs-érték párok tulajdonságcsomagja, amellyel speciálisabb beállításokat adhat meg a lekérdezéssel együtt. Jelenleg csak token a hívó által biztosított Microsoft Entra hozzáférési jogkivonat átadására állítható be, amelyet a rendszer továbbít az SQL-végpontnak hitelesítés céljából.
OutputSchema string A beépülő modul kimenetének várt oszlopainak sql_request nevei és típusai. Használja a következő szintaxist: (ColumnName:ColumnType [, ...] ).

Megjegyzés

  • Az OutputSchema megadása erősen ajánlott, mivel lehetővé teszi a beépülő modul használatát olyan helyzetekben, amelyek egyébként nem működnek nélküle, például egy fürtök közötti lekérdezésekben. Az OutputSchema több lekérdezésoptimalizálást is engedélyezhet.
  • Hiba akkor jelentkezik, ha az SQL hálózati végpont által visszaadott első sor futásidejű sémája nem egyezik meg az OutputSchema sémával.

Hitelesítés és engedélyezés

A sql_request beépülő modul az alábbi három hitelesítési módszert támogatja a SQL Server végponton.

Hitelesítési módszer Syntax Hogyan Description
Microsoft Entra integrált Authentication="Active Directory Integrated" Adja hozzá a ConnectionString paramétert . Ez az előnyben részesített hitelesítési módszer. A felhasználó vagy alkalmazás Microsoft Entra ID keresztül hitelesíti a fürtöt, és ugyanazt a jogkivonatot használja a SQL Server hálózati végpont eléréséhez.
A rendszerbiztonsági tagnak rendelkeznie kell a megfelelő engedélyekkel az SQL-erőforráshoz a kért művelet végrehajtásához. Ha például az adatbázisból szeretne olvasni, az egyszerű felhasználónak tábla SELECT engedélyekkel kell rendelkeznie, és egy meglévő táblába való íráshoz az egyszerű felhasználónak frissítési és BESZÚRÁSi engedélyekre van szüksége. Új táblába való íráshoz create engedélyekre is szükség van.
Felhasználónév és jelszó User ID=...; Password=...; Adja hozzá a ConnectionString paramétert . Ha lehetséges, kerülje ezt a metódust, mivel kevésbé biztonságos.
Microsoft Entra hozzáférési jogkivonat dynamic({'token': h"eyJ0..."}) Adja hozzá a Beállítások paramétert. A hozzáférési jogkivonat tulajdonságként token lesz átadva a beépülő modul Beállítások argumentumában.

Megjegyzés

Azokat a kapcsolati sztringeket és lekérdezéseket, amelyek bizalmas információkat vagy védendő információkat tartalmaznak, el kell rögzíteni, hogy bármely Kusto-nyomkövetésből kimaradjanak. További információ: elmosott sztringkonstansok.

Példák

SQL-lekérdezés küldése Microsoft Entra integrált hitelesítéssel

Az alábbi példa sql-lekérdezést küld egy Azure SQL DB-adatbázisnak. Lekéri az összes rekordot a fájlból [dbo].[Table], majd feldolgozza az eredményeket a Kusto oldalán. A hitelesítés újra felhasználja a hívó felhasználó Microsoft Entra jogkivonatát.

Megjegyzés

Ez a példa nem tekinthető javaslatnak az adatok ilyen módon történő szűrésére vagy kivetítésére. Az SQL-lekérdezéseket úgy kell létrehozni, hogy a lehető legkisebb adathalmazt adja vissza.

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

SQL-lekérdezés küldése felhasználónév/jelszó hitelesítéssel

Az alábbi példa megegyezik az előző példával, azzal a kivételel, hogy az SQL-hitelesítés felhasználónévvel/jelszóval történik. A bizalmasság érdekében obfuscated sztringeket használunk itt.

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

SQL-lekérdezés küldése Microsoft Entra hozzáférési jogkivonat használatával

Az alábbi példa egy SQL-lekérdezést küld egy Azure SQL-adatbázisnak, amely lekérte az összes rekordot a fájlból[dbo].[Table], miközben egy másik datetime oszlopot fűz hozzá, majd feldolgozza az eredményeket a Kusto oldalán. Megadja az SQL-lekérdezésben használni kívánt SQL-paramétert (@param0).

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

SQL-lekérdezés küldése lekérdezés által definiált kimeneti séma nélkül

Az alábbi példa egy SQL-lekérdezést küld egy kimeneti séma nélküli Azure SQL adatbázisba. Ez csak akkor ajánlott, ha a séma ismeretlen, mivel hatással lehet a lekérdezés teljesítményére

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

Titkosítás és kiszolgáló érvényesítése

Biztonsági okokból a következő kapcsolattulajdonságok lesznek kényszerítve egy SQL Server hálózati végponthoz való csatlakozáskor.

  • Encrypt feltétel nélküli értékre true van állítva.
  • TrustServerCertificate feltétel nélküli értékre false van állítva.

Ennek eredményeképpen a SQL Server érvényes SSL/TLS-kiszolgálói tanúsítvánnyal kell konfigurálni.

A hálózati végpont megadása

Az SQL-hálózati végpont megadása a kapcsolati karakterlánc részeként kötelező. A megfelelő szintaxis a következő:

Server=tcp:Teljes tartománynév [,port]

Ahol:

  • Az FQDN a végpont teljes tartományneve.
  • A port a végpont TCP-portja. Alapértelmezés szerint a 1433 rendszer feltételezi.

Megjegyzés

A hálózati végpont megadásának egyéb formái nem támogatottak. Nem lehet kihagyni például az előtagot tcp: annak ellenére, hogy az SQL-ügyfélkódtárak programozott használata esetén lehetséges.

Ez a képesség nem támogatott az Azure Monitorban