2010-06-19 9 views

Odpowiedz

67

Są one synonimami dla siebie nawzajem i mogą być używane jako intercha rozważnie.

W .NET istnieje klasa o nazwie SqlConnectionStringBuilder, który jest bardzo przydatny do czynienia z SQL Server ciągi połączeń wykorzystujących właściwości typu bezpieczny budować części łańcucha. Ta klasa zachowuje wewnętrzną listę synonimów więc może map od jednej wartości do drugiej:

 
+----------------------+-------------------------+ 
| 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   | 
+----------------------+-------------------------+ 

(Zestawione z pomocą reflektorowe)

Istnieją inne podobne zajęcia radzenia sobie ze ODBC i OleDb związku ciągi znaków, ale niestety nic dla innych dostawców baz danych - zakładam, że to obowiązek jest w bibliotece dostawcy, aby zapewnić taką implementację.

+0

Notka boczna dla przyszłych widzów tego: Zaufane połączenie nie działa dla mnie w Sql Server 2014. Zintegrowane bezpieczeństwo jednak, więc idę z tym! – statue

+4

W programie SQL Express 2014 używam zaufanego połączenia i działa ... zwróć uwagę na znak podkreślenia i musisz użyć "tak" zamiast "prawda" podczas używania zaufanego połączenia –

9

Są takie same.

Niestety, istnieje kilka odmian, jak to, w tym:

Server/Data Source

database/Initial Catalog

nie jestem pewien o pochodzeniu odmian, zakładam, że niektóre mają być ogólne (nie bazujące na bazie danych), więc ciąg połączenia wyglądałby bardzo podobnie w przypadku łączenia się z RDBMS w porównaniu do łączenia się z usługą katalogową itp.)

+0

Termin "katalog" jest częścią nomenklatury relacyjnej bazy danych i nie odnosi się do niczego poza RDBMS. Wyjaśnia to całkiem dobrze w tej odpowiedzi SO: http://stackoverflow.com/questions/7022755/whats-the-difference-between-a-atalog-and-a-schema-in-a-relational-database – ProfK

2

Tak więc później odkryłem początki konfliktu nazwy. Zbiór tokenów został użyty przez ODBC i inny zestaw zdefiniowany dla OLEDB. W przypadku serwera Sql Server ze względu na starsze wersje nadal obsługują one oba typy zamiennie.

Trusted_Connection = true to ODBC i Integrated Security = SSPI było OLEDB.

+1

http://www.connectionstrings.com/sql-server wydaje się, że albo działa dla OLEDB. Czy masz inny zasób? – Aligned

1

W moim przypadku odkryłem różnicę między "Trusted_Connection" i "Integrated Security". Korzystam z programu Microsoft SQL Server 2005. Pierwotnie używałem logowania do systemu Windows (Integrated Security = SSPI). Ale gdy zastąpiłem uwierzytelnianie systemu Windows przez uwierzytelnianie SQL Server, dodając identyfikator użytkownika i hasło, zastąpienie SSPI przez "Fałsz" nie powiodło się. Zwrócił błąd "Wielokrokowy błąd operacji OLE DB". Jednak gdy zastąpiłem "Integrated Security = False" przez "Trusted_Connection = no", zadziałało.

+0

Jeśli używasz uwierzytelniania SQL Server i określasz identyfikator użytkownika i hasło, nie musisz wspominać o "zintegrowanym zabezpieczeniu" lub "zaufanych połączeniach". – grahamesd

Powiązane problemy