Collegarsi ad un database SQL Server remoto

Spesso l'applicazione Asp.Net e il database Sql Server risiedono su due server differenti, sia in ambito di sviluppo che di produzione.

Si rende pertanto necessario configurare il server Windows e Sql Server affinché accetino connessioni da host remoti.

Di seguito elenco i passaggi principali; possono variare in base alla versione del sistema operativo e di Sql Server ma i concetti restano gli stessi.

Creare una regola sul Firewall

Per prima cosa bisogna dire a Windows di accettare richieste provenienti dall'esterno. Per fare ciò si aggiunge una regola (o meglio, un'eccezione) per aprire la porta 1433.
Questa è la porta di default di Sql Server, attenzione perché potrebbe essere anche un'altra.

Start >> Pannello di controllo >> Windows Firewall >> Eccezioni >> Aggiungi porta

Abilitare SQL Server

Ora bisogna configurare Sql Server per fargli permettere l'accesso remoto da parte dei client.

Management Studio >> tasto destro sul server >> Proprietà >> Connections >> mettere la spunta su "Allow remote connections to this server"

Solo per SQL Server 2005

Aggiungere l'abilitazione anche da Surface Area Configuration:

Start >> Programmi >> MS SQL Server 2005 >> Configuration Tools >>  Surface Area Configuration >> Services And Connections >> Remote Connections >> selezionare "Local and remote connections"

Impostare la connessione dal client

Solitamenteci si collega a un server MS SQL remoto usando Management Studio oppure Visual Studio.

Management Studio  >> Connect >> Database Engine

oppure

Visual Studio >> Server Explorer >> Data Connections >> Add Data Connection

Impostare il nome del server e i dati di accesso e clicare su Test Connection per assicurarsi che tutto sia andato a buon fine.

Creare la stringa di connessione

Dalle proprietà della connessione è possibile costruire la stringa di connessione al database, e poi aggiungerla al file web.config dell'applicazione Asp.Net.

<connectionStrings>
    <add name="AdventureW" providerName="System.Data.SqlClient"
    connectionString="Data Source=192.168.100.63;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=beadyeye;" />
</connectionStrings>

Le pagine dell'applicazione potranno quindi leggere la stringa tramite l'oggetto ConfigurationManager:

strConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["AdventureW"].ConnectionString;

Autore: Sergio Roberto Boarina