Connessione al Database SQL di Azure: Una Guida Completa

Azure SQL Database è un servizio di database SQL gestito che è stato creato in modo che gli sviluppatori e gli amministratori non debbano eseguire i tediosi compiti di installazione di SQL Server o trascorrere ore a configurare cluster di failover.

Microsoft Azure si è occupata delle operazioni più complesse per la configurazione del livello del database, quindi tutto ciò che resta da fare è connettersi ad esso, ed è di questo che tratterà questo articolo. Ecco diversi modi per connettersi a un database Azure SQL.

Prerequisiti

Se si desidera connettersi a un database Azure SQL, è necessario soddisfare alcuni prerequisiti in anticipo.

  1. Un account Azure o accesso ad uno
  2. Un database Azure SQL (è possibile utilizzare il proprio se si preferisce, ma io userò il campione.
  3. A Windows 10, Mac OS, or Linux laptop or desktop with PowerShell, Visual Studio Code and SQL Server Management Studio installed. The screenshots are all from Windows 10.

Ci sono decine di modi diversi per connettersi ad Azure SQL, e purtroppo non posso trattarli tutti, ma quelli che tratterò in questo articolo sono:

  • Il portale di Azure
  • SQL Server Management Studio
  • Visual Studio Code
  • PowerShell

Configurazione del database Azure SQL

Prima di iniziare, assicurati di avere un database disponibile e di poterti connettere ad esso. Utilizzando le istruzioni del documento di avvio rapido, ho configurato un database di esempio chiamato ata-demo. Questo database ha un utente SQL amministratore (sa) chiamato AtaAdmin e la password è Admin123.

La password che sto utilizzando non è molto sicura, ma va bene per scopi di demo. Per favore, usa le migliori pratiche per le password quando configuri qualcosa del genere in ambiente di QA o Produzione!

Successivamente, dovrai effettuare l’accesso al Portale di Azure per verificare che il tuo dispositivo possa connettersi al database. Puoi collegarlo a una rete virtuale di Azure esistente o definire un intervallo di indirizzi IP che può accedere al database, cosa che viene fatta negli esempi seguenti. Vai alla pagina delle risorse del database SQL a cui desideri connetterti e cerca un’opzione chiamata Imposta il firewall del server.

Setting an Azure SQL Server firewall rule

Una volta qui, avrai l’opzione di scegliere un intervallo di indirizzi IP. Questa pagina mostra anche l’indirizzo IP del tuo dispositivo, che utilizzerò per la demo. Ma nella pratica, questo sarà l’intervallo di subnet o la rete virtuale del tuo livello di applicazione. Una volta fatto ciò, sei pronto per passare alla prima demo!

Connessione a un database SQL di Azure tramite il Portale di Azure

Dato che sei già nel Portale di Azure, puoi rimanere qui per la prima demo.

Torna alla pagina Panoramica utilizzando il menu di navigazione sulla sinistra e cerca Editor query. Una volta lì, ti verrà chiesto di effettuare l’accesso con un account Microsoft o con le credenziali SQL. Utilizza l’account SA che hai configurato in precedenza per effettuare l’accesso (AtaAdmin:Admin123).

Dopo aver effettuato l’accesso, vedrai un pannello con le Tabelle, le Viste e le Stored Procedure sulla sinistra dell’Editor query. Al momento della stesura di questo testo, non è disponibile la funzionalità di clic destro in questa interfaccia utente, quindi l’unica opzione per interagire con il database è tramite l’Editor query. Se stai utilizzando il database di esempio, puoi utilizzare la query di esempio riportata di seguito.

SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;
Querying the Azure SQL server database

Ora che sai che le regole del firewall sono state configurate, possiamo iniziare a provare ciò da altre piattaforme.

Connessione a un database di Azure SQL con SQL Server Management Studio (SSMS)

Il tool più completo per la gestione di un server SQL Database è senza dubbio SSMS. Testato nel tempo e collaudato, questo è stato lo strumento preferito dagli amministratori di database SQL server per oltre un decennio.

SSMS è anche completamente compatibile con i database di Azure SQL. Se non lo hai installato, puoi scaricare l’ultima versione da Microsoft o installarlo tramite un gestore di pacchetti.

Torna alla tua pagina delle risorse del Database SQL e copia il Nome del Server. Il nome del server sarà <Nome del tuo Database>.database.windows.net.

Apri SQL Server Management Studio per connetterti al nome del database utilizzando l’autenticazione di SQL Server e l’utente SA che hai impostato in precedenza. Se non hai ancora configurato la regola del firewall, SSMS ti chiederà di autenticarti con il tuo account Azure.

Ora che ti sei autenticato al database e hai configurato il firewall, puoi iniziare a eseguire le tue query andando su <NomeServer> -> Database, facendo clic con il pulsante destro del mouse sul tuo database e selezionando Nuova Query. Ora esegui la query che hai usato in precedenza e guarda accadere la magia.

Connecting to an Azure SQL Database with SSMS

Connettersi a un database SQL di Azure con Visual Studio Code (Code)

Per connettersi a un database SQL di Azure con Visual Studio Code, è necessario installare l’estensione mssql per Visual Studio Code. Una volta installato, premi Ctrl + Shift + P per aprire la finestra di dialogo e cerca MS SQL: Connect.

Using the MSSql extension in Visual Studio Code

Una volta selezionato, Visual Studio Code ti guiderà attraverso una procedura guidata che ti chiederà di inserire le informazioni del database a cui connetterti. Ti verrà chiesto il nome del server, il nome del database, il nome utente e la password. Una volta forniti tutti questi dati, verranno salvati in un profilo di connessione che può essere utilizzato per eseguire query su quel database.

Immettere una query SQL da eseguire sul database nella finestra dell’editor. Con la query aperta, premere Ctrl + Shift + E. Verrà chiesto quale connessione si desidera utilizzare per eseguire la query. Scegliere quella creata e Code aprirà un’altra finestra con i risultati senza mai lasciare lo schermo!

Connecting to mySql in Visual Studio Code

Connessione a un database SQL di Azure con PowerShell

Per connettersi a un database SQL di Azure con PowerShell, è necessario installare il modulo Az PowerShell. È possibile trovare questo modulo su PowerShell Gallery. Scaricare e installare il modulo eseguendo il comando Install-Module Az. Al momento della stesura di questo testo, il modulo è alla versione 2.5

Il modulo deve essere installato solo una volta sulla macchina da cui si desidera eseguire lo script. Successivamente, eseguire l’autenticazione su Azure tramite il comando Connect-AzAccount. Per saperne di più su come utilizzare il cmdlet Connect-AzAccount.

Per verificare che tutto funzioni correttamente, è possibile trovare il database eseguendo il comando Get-AzSqlServer -ResourceGroupName <Nome del gruppo di risorse>. Se viene restituito il database a cui si desidera connettersi, si è pronti per eseguire lo script.

Ora che si è autenticati e si può vedere il database, è possibile eseguirne una query eseguendo lo script riportato di seguito. Questo codice importerà il modulo Azure SQL, imposterà i parametri (database, nome utente, credenziali e query) ed eseguirà Invoke-SqlCmd per avviare la query SQL.

# Importare il modulo
Import-Module Az.Sql -Force
 
# Configurare i parametri
$Params = @{
   'ServerInstance' = 'atademo.database.windows.net';
   'Database' = 'ata-demo';
   'Username' = 'ataadmin';
   'Password' = 'Admin123';
   'Query' = 'SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;'
}
 
# Splat
Invoke-Sqlcmd @Params

Puoi anche utilizzare PowerShell per leggere il server e il database Azure SQL e utilizzare queste informazioni per passarle alla query come mostrato di seguito. Presumendo che tu abbia definito $rgName e stia passando la password come stringa sicura, non c’è una differenza funzionale tra il primo script e il secondo.

Import-Module Az.Sql -Force
 
$rgName = '<Resource Group Name>'
$sqlServer = Get-AzSqlServer -ResourceGroupName $rgName
$sqlDatabase = Get-AzSqlDatabase -ServerName $sqlServer.ServerName -ResourceGroupName $rgName
 
$Params = @{
   'ServerInstance' = $sqlServer.FullyQualifiedDomainName;
   'Database' = $sqlDatabase.DatabaseName[0];
   'Username' = $sqlServer.SqlAdministratorLogin;
   'Password' = ‘<Password>’;
   'Query' = 'SELECT pc.Name as CategoryName, p.name as ProductName
       FROM [SalesLT].[ProductCategory] pc
       JOIN [SalesLT].[Product] p
       ON pc.productcategoryid = p.productcategoryid;'
}
 
Invoke-Sqlcmd @Params

Conclusione

Ora che ti sei connesso a un database Azure SQL in diversi modi, dovresti sentirti a tuo agio nell’utilizzarlo sia con che al posto di un’installazione tradizionale di SQL Server!

Ulteriori letture

Source:
https://adamtheautomator.com/connect-to-azure-sql-database/