2010-06-19 31 views

risposta

67

Sono sinonimi l'uno dell'altro e possono essere utilizzati intercha ngeably.

In Net, v'è una classe chiamata SqlConnectionStringBuilder che è molto utile per affrontare SQL Server stringhe di connessione utilizzando le proprietà type-safe per costruire parti della stringa. Questa classe mantiene un elenco interno dei sinonimi in modo che possa mappare da un valore all'altro:

 
+----------------------+-------------------------+ 
| Value    | Synonym     | 
+----------------------+-------------------------+ 
| app     | application name  | 
| async    | asynchronous processing | 
| extended properties | attachdbfilename  | 
| initial file name | attachdbfilename  | 
| connection timeout | connect timeout   | 
| timeout    | connect timeout   | 
| language    | current language  | 
| addr     | data source    | 
| address    | data source    | 
| network address  | data source    | 
| server    | data source    | 
| database    | initial catalog   | 
| trusted_connection | integrated security  | 
| connection lifetime | load balance timeout | 
| net     | network library   | 
| network    | network library   | 
| pwd     | password    | 
| persistsecurityinfo | persist security info | 
| uid     | user id     | 
| user     | user id     | 
| wsid     | workstation id   | 
+----------------------+-------------------------+ 

(Compilato con l'aiuto di Reflector)

Non ci sono altre classi simili per trattare con ODBC e OleDb collegamento stringhe, ma sfortunatamente nulla per altri fornitori di database - suppongo che l'onere sia sulla libreria di un fornitore di fornire tale implementazione.

+0

Side note per i futuri spettatori di questo: Trusted Connection non funziona per me in un server Sql 2014. La sicurezza integrata, tuttavia, così sto andando con quello! – statue

+4

Su SQL Express 2014 sto usando trusted_connection e sta funzionando ... nota il underscorec per favore e devi usare "yes" piuttosto che "true" quando usi trusted_connection –

9

Sono uguali.

Purtroppo, ci sono diverse varianti di questo tipo, tra cui:

Server/Data Source

Database/Initial Catalog

non sono sicuro delle origini delle variazioni, suppongo alcuni sono pensati per essere generici (non incentrati sul database, quindi la stringa di connessione sarebbe molto simile se si connette a un RDBMS o si connette a un servizio di directory, ecc.)

+0

Il termine 'catalog' fa parte della nomenclatura del database relazionale e non fa riferimento a nient'altro che a un RDBMS. È spiegato abbastanza bene in questa risposta SO: http://stackoverflow.com/questions/7022755/whats-the-difference-between-a-catalog-and-a-schema-in-a-relational-database – ProfK

2

Quindi un po 'più tardi ho scoperto le origini del nome scontro. Un set di token è stato utilizzato da ODBC e un diverso set definito per OLEDB. Per Sql Server per motivi legacy continuano a supportare entrambi in modo intercambiabile.

Trusted_Connection = true è ODBC e Integrated Security = SSPI era OLEDB.

+1

http://www.connectionstrings.com/sql-server sembra dire che funziona per OLEDB. Hai una risorsa diversa? – Aligned

1

Nel mio caso ho scoperto una differenza tra "Trusted_Connection" e "Integrated Security". Sto usando Microsoft SQL Server 2005. Originariamente ho usato l'accesso a Windows (Integrated Security = SSPI). Ma quando ho sostituito l'autenticazione di Windows con l'autenticazione di SQL Server aggiungendo User ID e password, la sostituzione di SSPI con "False" non è riuscita. Ha restituito un "errore OLE DB di operazione passo-passo generato". Tuttavia, quando ho sostituito "Integrated Security = False" di "Trusted_Connection = no", ha funzionato.

+0

Se si utilizza l'autenticazione di SQL Server e si specifica l'ID utente e la password, non è necessario menzionare "sicurezza integrata" o "trusted_connections". – grahamesd

Problemi correlati