sql_request eklentisi
Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini
Eklenti, sql_request
Azure SQL Server ağ uç noktasına bir SQL sorgusu gönderir ve sonuçları döndürür.
SQL tarafından birden fazla satır kümesi döndürülürse, yalnızca ilk satır kümesi kullanılır.
Eklenti işleciyle birlikte çağrılır evaluate
.
Sözdizimi
evaluate
sql_request
(
ConnectionString SqlQuery [,
SqlParameters [,
Seçenekler]] )
[:
OutputSchema] ,
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Zorunlu | Açıklama |
---|---|---|---|
ConnectionString | string |
✔️ | SQL Server ağ uç noktasını işaret eden bağlantı dizesi. Geçerli kimlik doğrulama yöntemlerine ve ağ uç noktasını belirtmeye bakın. |
SqlQuery | string |
✔️ | SQL uç noktasında yürütülecek sorgu. Sorgu bir veya daha fazla satır kümesi döndürmelidir, ancak Kusto sorgusunun geri kalanında yalnızca ilki kullanılabilir hale getirilir. |
SqlParameters | dynamic |
Sorguyla birlikte parametre olarak geçirmek için anahtar-değer çiftlerinin özellik paketi. | |
Seçenekler | dynamic |
Sorguyla birlikte daha gelişmiş ayarlar geçirmek için anahtar-değer çiftlerinden oluşan bir özellik paketi. Şu anda yalnızca token , kimlik doğrulaması için SQL uç noktasına iletilen çağıran tarafından sağlanan bir Microsoft Entra erişim belirtecini geçirmek üzere ayarlanabilir. |
|
OutputSchema | string |
Eklenti çıkışının beklenen sütunları sql_request için adlar ve türler. Aşağıdaki söz dizimini kullanın: ( ColumnName : ColumnType [, ...] ) . |
Not
- OutputSchema'nın belirtilmesi kesinlikle önerilir, bu nedenle eklentinin kümeler arası sorgu gibi olmadan çalışmayabilecek senaryolarda kullanılmasına izin verir. OutputSchema, birden çok sorgu iyileştirmesini de etkinleştirebilir.
- SQL ağ uç noktası tarafından döndürülen ilk satır kümesinin çalışma zamanı şeması OutputSchema şemasıyla eşleşmiyorsa hata oluşur.
Kimlik doğrulaması ve yetkilendirme
sql_request eklentisi, SQL Server uç noktasında aşağıdaki üç kimlik doğrulama yöntemini destekler.
Kimlik doğrulama yöntemi | Sözdizimi | Nasıl? | Açıklama |
---|---|---|---|
Microsoft Entra tümleşik | Authentication="Active Directory Integrated" |
ConnectionString parametresine ekleyin. | Kullanıcı veya uygulama kümenizde Microsoft Entra Kimliği aracılığıyla kimlik doğrulaması yapar ve SQL Server ağ uç noktasına erişmek için aynı belirteç kullanılır. sorumlu, istenen eylemi gerçekleştirmek için SQL kaynağı üzerinde uygun izinlere sahip olmalıdır. Örneğin, veritabanından okumak için sorumlunun SELECT izinleri tablosuna ve var olan bir tabloya yazmak için UPDATE ve INSERT izinlerine ihtiyacı vardır. Yeni bir tabloya yazmak için CREATE izinleri de gereklidir. |
Yönetilen kimlik | Authentication="Active Directory Managed Identity";User Id={object_id} |
ConnectionString parametresine ekleyin. | İstek yönetilen kimlik adına yürütülür. İstenen eylemi gerçekleştirmek için yönetilen kimliğin SQL kaynağı üzerinde uygun izinlere sahip olması gerekir. Yönetilen kimlik kimlik doğrulamasını etkinleştirmek için yönetilen kimliği kümenize eklemeniz ve yönetilen kimlik ilkesini değiştirmeniz gerekir. Daha fazla bilgi için bkz . Yönetilen Kimlik ilkesi. |
Kullanıcı adı ve parola | User ID=...; Password=...; |
ConnectionString parametresine ekleyin. | Mümkün olduğunda, daha az güvenli olabileceğinden bu yöntemden kaçının. |
Microsoft Entra erişim belirteci | dynamic({'token': h"eyJ0..."}) |
Seçenekler parametresine ekleyin. | Erişim belirteci, eklentinin Seçenekler bağımsız değişkeninde özellik olarak token geçirilir. |
Not
Gizli bilgileri veya korunması gereken bilgileri içeren bağlantı dizeleri ve sorgular kusto izlemesinden atlanacak şekilde gizlenmelidir. Daha fazla bilgi için bkz . belirsiz dize değişmez değerleri.
Örnekler
Microsoft Entra tümleşik kimlik doğrulamayı kullanarak SQL sorgusu gönderme
Aşağıdaki örnek, Azure SQL DB veritabanına bir SQL sorgusu gönderir. 'den [dbo].[Table]
tüm kayıtları alır ve ardından sonuçları Kusto tarafında işler. Kimlik doğrulaması, çağıran kullanıcının Microsoft Entra belirtecini yeniden kullanılır.
Not
Bu örnek, verileri bu şekilde filtrelemek veya yansıtmak için öneri olarak alınmamalıdır. SQL sorguları, mümkün olan en küçük veri kümesini döndürecek şekilde oluşturulmalıdır.
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
Kullanıcı Adı/Parola kimlik doğrulaması kullanarak SQL sorgusu gönderme
Aşağıdaki örnek, SQL kimlik doğrulamasının kullanıcı adı/parola ile yapılması dışında önceki örnekle aynıdır. Gizlilik için burada karartılmış dizeler kullanırız.
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
Microsoft Entra erişim belirtecini kullanarak SQL sorgusu gönderme
Aşağıdaki örnek, azure sql veritabanına bir SQL sorgusu gönderir ve bu sırada başka bir datetime
sütun eklerken tüm kayıtları [dbo].[Table]
alır ve ardından sonuçları Kusto tarafında işler.
SQL sorgusunda kullanılacak bir SQL parametresini (@param0
) belirtir.
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
Sorgu tanımlı çıkış şeması olmadan SQL sorgusu gönderme
Aşağıdaki örnek, çıkış şeması olmayan bir Azure SQL veritabanına SQL sorgusu gönderir. Şema bilinmediği sürece bu önerilmez, bunun nedeni sorgunun performansını etkileyebilecek olmasıdı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]')
| where Id > 0
| project Name
Şifreleme ve sunucu doğrulaması
Aşağıdaki bağlantı özellikleri, güvenlik nedeniyle bir SQL Server ağ uç noktasına bağlanırken zorlanır.
Encrypt
koşulsuz olaraktrue
ayarlanır.TrustServerCertificate
koşulsuz olarakfalse
ayarlanır.
Sonuç olarak, SQL Server geçerli bir SSL/TLS sunucu sertifikasıyla yapılandırılmalıdır.
Ağ uç noktasını belirtme
SQL ağ uç noktasının bağlantı dizesi bir parçası olarak belirtilmesi zorunludur. Uygun söz dizimi:
Server
=
tcp:
FQDN [,
Bağlantı Noktası]
Where:
- FQDN , uç noktanın tam etki alanı adıdır.
- Bağlantı noktası , uç noktanın TCP bağlantı noktasıdır. Varsayılan olarak varsayılır
1433
.
Not
Ağ uç noktasını belirtmenin diğer biçimleri desteklenmez.
Örneğin, SQL istemci kitaplıklarını program aracılığıyla kullanırken bunu yapmak mümkün olsa bile ön eki tcp:
atlayamazsınız.