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
evaluate
sql_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ékretrue
van állítva.TrustServerCertificate
feltétel nélküli értékrefalse
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: