Snippets

Snippet KQL : isoler les erreurs Azure SQL sur endpoint privé

Une requête courte pour distinguer firewall, authentification, endpoint public et absence de connexion lors d'un incident Azure SQL privé.

14 juin 2026 azuresqlprivate-endpointdnskqllogsidentityrunbookfirewall

Quand une application ne rejoint plus Azure SQL via Private Endpoint, commence par vérifier si SQL voit réellement la tentative et quelle erreur est associée à la connexion.

kusto azure-sql-private-errors.kql
let Window = 2h;
let Server = "sql-prod-orders";
let Database = "orders";
AzureDiagnostics
| where TimeGenerated > ago(Window)
| where ResourceProvider == "MICROSOFT.SQL"
| where Resource has Server or database_name_s == Database
| where action_name_s has_any ("DATABASE AUTHENTICATION", "LOGOUT", "BATCH COMPLETED")
 or error_number_d in (40615, 18456, 18452, 18470)
 or statement_s has_any ("Login failed", "firewall", "denied")
| project TimeGenerated, Resource, database_name_s, action_name_s, error_number_d, succeeded_s, session_server_principal_name_s, client_ip_s, statement_s
| order by TimeGenerated desc

Lecture rapide :

  • aucune ligne pour le test : revenir à DNS, Private Endpoint, routage ou chaîne de connexion ;
  • 40615 ou message firewall : vérifier accès public, règles firewall et source réellement vue ;
  • 18456 ou principal refusé : vérifier identité réelle, utilisateur contenu, groupe Entra ID et secret utilisé.