Vai al contenuto

Monitorare l’accesso a Azure SQL Database da applicazioni specifiche: una lezione appresa

Scopri come monitorare l’accesso a Azure SQL Database da applicazioni specifiche utilizzando gli eventi estesi e PowerShell, un metodo robusto ma che richiede attenzione per le possibili implicazioni sulle prestazioni.

Questa settimana, ho lavorato su una richiesta di servizio in cui il nostro cliente aveva la necessità di garantire che applicazioni specifiche non potessero connettersi a un particolare database. Purtroppo, i trigger di accesso non sono supportati in Azure SQL Database, ma possiamo utilizzare un evento esteso per catturare tutti gli accessi. Vorrei condividere con voi la mia esperienza.

Innanzitutto, creeremo una sessione di eventi estesi che cattura gli eventi di accesso e memorizza le informazioni nel buffer circolare. Una volta creata la sessione di eventi estesi, dobbiamo avviarla in modo che Azure SQL Database inizi a catturare gli accessi.

Per recuperare ed elaborare gli eventi catturati, utilizzeremo la seguente query SQL. Questa query estrae i dati dal buffer circolare e li inserisce in una tabella temporanea per l’analisi.

Se vogliamo automatizzare il processo per notificare se rileva connessioni da applicazioni specifiche, potremmo utilizzare il seguente script PowerShell. Questo script PowerShell esegue la query, verifica se il nome dell’applicazione è tra l’array definito in $appNamesToCheck. Se corrisponde, mostrerà un messaggio. Per evitare che i dati storici vengano elaborati nuovamente, la data di esecuzione verrà salvata, garantendo che vengano inviate solo nuove informazioni.

Potete personalizzare questo codice in base alle vostre esigenze e testarlo nel vostro ambiente di preproduzione prima di utilizzarlo. Utilizzare gli eventi estesi e PowerShell in questo modo fornisce un modo robusto per monitorare e notificare le connessioni di applicazioni specifiche ad Azure SQL Database. Tuttavia, è importante notare che questo metodo comporta l’interrogazione continua dei dati dell’evento, che può avere implicazioni sulle prestazioni a seconda del volume degli eventi di accesso e della frequenza dei controlli. Assicuratevi che questa soluzione sia testata accuratamente in un ambiente non di produzione prima di implementarla in uno scenario live. Regolate la frequenza dell’esecuzione dello script PowerShell come necessario per bilanciare tra notifiche tempestive e prestazioni del sistema.

Infine, potete anche definire l’evento esteso filtrando direttamente il nome, in modo che solo l’ingresso nel buffer circolare venga generato.