Sintassi della stringa di connessione

Ogni provider di dati ADO.NET ha un oggetto Connection che eredita da DbConnection e una proprietà ConnectionString specifica del provider. La sintassi della stringa di connessione specifica per ogni provider è documentata in questa proprietà ConnectionString. Nella tabella seguente sono elencati Microsoft.Data.SqlClient e tre provider inclusi in .NET Framework.

Provider di dati Descrizione
Microsoft.Data.SqlClient Fornisce l'accesso ai dati per Microsoft SQL Server tramite il Microsoft.Data.SqlClient NuGet package. Per altre informazioni sulla sintassi della stringa di connessione, vedere ConnectionString.
System.Data.OleDb Offre accesso ai dati per le origini dati esposte tramite OLE DB. Per altre informazioni sulla sintassi della stringa di connessione, vedere ConnectionString.
System.Data.Odbc Offre accesso ai dati per le origini dati esposte tramite ODBC. Per altre informazioni sulla sintassi della stringa di connessione, vedere ConnectionString.
System.Data.OracleClient Offre accesso ai dati per Oracle 8.1.7 o versione successiva. Per altre informazioni sulla sintassi della stringa di connessione, vedere ConnectionString.

Generatori di stringhe di connessione

Usare il generatore di stringa di connessione per il provider di dati.

I generatori di stringhe di connessione consentono di costruire stringhe di connessione sintatticamente valide in fase di esecuzione, pertanto non è necessario concatenare manualmente i valori della stringa di connessione nel codice. Per altre informazioni, vedere Compilatori di stringhe di connessione.

Autenticazione di Windows

L'autenticazione di Windows (a volte definita sicurezza integrata) può essere utilizzata per connettersi alle origini dati che la supportano. La sintassi usata nella stringa di connessione varia a seconda del provider. Nella tabella seguente viene illustrata la sintassi di autenticazione Windows usata con questi provider di dati.

Fornitore Sintassi
SqlClient Integrated Security=true;

-- or --

Integrated Security=SSPI;
OleDb Integrated Security=SSPI;
Odbc Trusted_Connection=yes;
OracleClient Integrated Security=yes;

Nota

Integrated Security=true genera un'eccezione se usata con il provider OleDb.

Importante

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Se ci si connette ad Azure SQL, le Identità gestite per le risorse Azure sono il metodo di autenticazione consigliato.

Stringhe di connessione SqlClient

La sintassi per una stringa di connessione SqlConnection è documentata nella proprietà SqlConnection.ConnectionString. È possibile usare la proprietà ConnectionString per ottenere o impostare una stringa di connessione per un database di SQL Server. La maggior parte delle parole chiave delle stringhe di connessione sono inoltre mappate alle proprietà dell'oggetto SqlConnectionStringBuilder.

Importante

L'impostazione predefinita per la parola chiave Persist Security Info è false. Impostandola su true o yes, è possibile ottenere informazioni sensibili, compresi l'ID utente e la password, dalla connessione dopo che questa è stata aperta. Mantenere Persist Security Info impostata su false per assicurarsi che le origini non attendibili non abbiano accesso a informazioni sensibili sulle stringhe di connessione.

Autenticazione di Windows con SqlClient

Ogni forma di sintassi seguente usa l'autenticazione di Windows per connettersi al database AdventureWorks nel server specificato.

"Persist Security Info=False;Integrated Security=true;Initial Catalog=AdventureWorks;Server=<server>;Encrypt=true"
"Persist Security Info=False;Integrated Security=SSPI;database=AdventureWorks;server=<server>;Encrypt=true"
"Persist Security Info=False;Trusted_Connection=True;database=AdventureWorks;server=<server>;Encrypt=true"

Importante

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Se ci si connette ad Azure SQL, le Identità gestite per le risorse Azure sono il metodo di autenticazione consigliato.

Autenticazione di SQL Server con SqlClient

L'autenticazione di Windows è il sistema consigliato per le connessioni a SQL Server (in locale). Se tuttavia è necessario usare l'autenticazione di SQL Server, usare la sintassi seguente per specificare un nome utente e una password. In questo esempio per rappresentare un nome utente e una password validi vengono usati asterischi.

"Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"

Quando ci si connette al database SQL di Azure o ad Azure SQL Data Warehouse e si specifica un account di accesso nel formato user@servername, assicurarsi che il valore servername nell'account di accesso corrisponda al valore specificato per Server=.

Nota

L'autenticazione di Windows ha la precedenza sugli account di accesso di SQL Server. Se si specifica Integrated Security=true oltre a un nome utente e una password, il nome utente e la password vengono ignorati e viene utilizzata l'autenticazione di Windows.

Importante

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Se ci si connette ad Azure SQL, le Identità gestite per le risorse Azure sono il metodo di autenticazione consigliato.

Connettersi a un'istanza denominata di SQL Server

Per connettersi a un'istanza denominata di SQL Server, usare la sintassi nome server\nome istanza.

"Data Source=<server>\\<instance>;Encrypt=true;"

È anche possibile impostare la proprietà DataSource di SqlConnectionStringBuilder sul nome dell'istanza quando si compila una stringa di connessione. La proprietà DataSource di un oggetto SqlConnection è di sola lettura.

Modifiche alla versione del sistema di tipi

La parola chiave Type System Version in SqlConnection.ConnectionString specifica la rappresentazione lato client dei tipi di SQL Server. Per altre informazioni sull'uso della parola chiave Type System Version, vedere SqlConnection.ConnectionString.

Connettersi e collegare alle istanze utente di SQL Server Express

Le istanze utente sono una funzionalità di SQL Server Express. consentono a un utente che usa un account di Windows locale con privilegi minimi di collegarsi ed eseguire un database SQL Server senza la necessità di privilegi amministrativi. Un'istanza utente viene eseguita con le credenziali di Windows dell'utente, non come un servizio.

Per altre informazioni sull'utilizzo delle istanze utente, vedere Istanze utente di SQL Server Express.

Usare TrustServerCertificate

Con Encrypt=true, TrustServerCertificate=true crittografa la connessione ma aggira la verifica del certificato del server. Mantenere TrustServerCertificate=false per le connessioni di produzione e configurare un certificato server verificabile.

"TrustServerCertificate=true;"

Caution

Se si ignora la convalida del certificato, il client non può verificare l'identità del server. Con Encrypt=Strict, Microsoft. Data.SqlClient convalida sempre il certificato del server e ignora TrustServerCertificate.

Abilitare la crittografia

Microsoft.Data.SqlClient ha come valore predefinito Encrypt=Mandatory, equivalente a Encrypt=true e TrustServerCertificate=false. Il client richiede la crittografia e convalida il certificato del server. Se il certificato non è attendibile o non corrisponde al nome del server, la connessione non riesce.

Per le connessioni remote, specificare Encrypt=true e configurare un certificato server attendibile dal client. Se si esegue la migrazione da System.Data.SqlClient, non presupporre che le impostazioni predefinite di crittografia siano valide per Microsoft.Data.SqlClient. Per altre informazioni, vedere Crittografia e convalida dei certificati in Microsoft.Data.SqlClient.

Stringhe di connessione OleDb

La proprietà ConnectionString di un oggetto OleDbConnection consente di ottenere o impostare una stringa di connessione per un'origine dati OLE DB quale Microsoft Access. È anche possibile creare una OleDb stringa di connessione in fase di esecuzione usando la OleDbConnectionStringBuilder classe .

Sintassi della stringa di connessione OleDb

È necessario specificare il nome di un provider per una stringa di connessione OleDbConnection. La seguente stringa di connessione consente di connettersi a un database Microsoft Access usando il provider Jet. Si noti che le parole chiave User ID e Password sono facoltative se il database non è protetto (impostazione predefinita).

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Northwind.mdb;User ID=Admin;Password=;

Se il database Jet è protetto tramite sicurezza a livello utente, è necessario specificare il percorso del file di informazioni sul gruppo di lavoro, con estensione mdw. Il file di informazioni sul gruppo di lavoro viene usato per convalidare le credenziali fornite nella stringa di connessione.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;

Importante

È possibile fornire informazioni di connessione per un OleDbConnection oggetto in un file UDL (Universal Data Link). Tuttavia, è consigliabile evitare di farlo. I file UDL non sono crittografati, pertanto espongono le informazioni nella stringa di connessione come testo non crittografato. Poiché per l'applicazione si tratta di una risorsa esterna basata su file, un file UDL non può essere protetto tramite .NET Framework. I file UDL non sono supportati per SqlClient.

Importante

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Se ci si connette ad Azure SQL, le Identità gestite per le risorse Azure sono il metodo di autenticazione consigliato.

Uso di DataDirectory per la connessione a Access/Jet

DataDirectory non è riservata esclusivamente a SqlClient. Può essere usata anche con i provider di dati .NET System.Data.OleDb e System.Data.Odbc. Nell'esempio seguente la stringa OleDbConnection indica la sintassi richiesta per connettersi al database Northwind.mdb situato nella cartella app_data dell'applicazione. In tale percorso è archiviato anche il database di sistema (System.mdw).

"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\Northwind.mdb;
Jet OLEDB:System Database=|DataDirectory|\System.mdw;"

Importante

Se il database Acces/Jet non è protetto, non è necessario specificare il percorso del database di sistema nella stringa di connessione. La sicurezza è disattivata per impostazione predefinita, con tutti gli utenti che si connettono come utente predefinito Admin senza password. Anche quando la sicurezza a livello di utente è implementata correttamente, un database Jet rimane vulnerabile agli attacchi. Pertanto, considerando la debolezza intrinseca dello schema di sicurezza basato su file dei database Access/Jet, si sconsiglia di archiviare informazioni sensibili in tali database.

Connessione a Excel

Il provider Microsoft Jet viene usato per la connessione a una cartella di lavoro Excel. Nella seguente stringa di connessione la parola chiave Extended Properties imposta le proprietà specifiche di Excel. "HDR=Yes;" indica che la prima riga contiene nomi di colonne e non dati, mentre "IMEX=1;" indica al driver di leggere sempre come testo colonne di dati misti.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""

Si noti che il carattere di virgolette doppie necessario per Extended Properties deve essere anch'esso racchiuso tra virgolette doppie.

Sintassi della stringa di connessione di Data Shape Provider

Con il provider Microsoft Data Shape Provider, usare le parole chiave Provider e provider di dati. Nell'esempio seguente viene usato il provider Shape per eseguire la connessione a un'istanza locale di SQL Server.

"Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;Integrated Security=SSPI;"

Importante

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Se ci si connette ad Azure SQL, le Identità gestite per le risorse Azure sono il metodo di autenticazione consigliato.

Stringhe di connessione Odbc

La proprietà ConnectionString di un oggetto OdbcConnection consente di ottenere o impostare una stringa di connessione per un'origine dati OLE DB. Le stringhe di connessione ODBC sono supportate anche da OdbcConnectionStringBuilder.

Nella seguente stringa di connessione viene usato il driver Microsoft per file di testo.

Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin

Stringhe di connessione Oracle

La proprietà ConnectionString di un oggetto OracleConnection consente di ottenere o impostare una stringa di connessione per un'origine dati OLE DB. Le stringhe di connessione Oracle sono supportate anche da OracleConnectionStringBuilder.

Data Source=Oracle9i;User ID=*****;Password=*****;

Per altre informazioni sulla sintassi delle stringhe di connessione ODBC, vedere ConnectionString.

Importante

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Se ci si connette ad Azure SQL, le Identità gestite per le risorse Azure sono il metodo di autenticazione consigliato.

Vedi anche