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é.
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.
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 ;
40615ou message firewall : vérifier accès public, règles firewall et source réellement vue ;18456ou principal refusé : vérifier identité réelle, utilisateur contenu, groupe Entra ID et secret utilisé.