Was ist der Unterschied zwischen Trusted_Connection und Integrated Security in einer Verbindungszeichenfolge?

81

Ich bin gespannt, was der Unterschied zwischen dem Token "Trusted_Connection" und "Integrated Security" in SQL Server-Verbindungszeichenfolgen ist (ich glaube, andere Datenbanken / Treiber unterstützen diese nicht). Ich verstehe, dass sie gleichberechtigt sind.

Peter Oehlert
quelle

Antworten:

99

Sie sind Synonyme für einander und können austauschbar verwendet werden.

In .Net gibt es eine Klasse namens SqlConnectionStringBuilder , die sehr nützlich ist, um mit SQL Server- Verbindungszeichenfolgen umzugehen , die typsichere Eigenschaften verwenden, um Teile der Zeichenfolge aufzubauen. Diese Klasse führt eine interne Liste von Synonymen, damit sie von einem Wert auf einen anderen abgebildet werden kann:

+ ---------------------- + ------------------------- +
| Wert | Synonym |
+ ---------------------- + ------------------------- +
| App | Anwendungsname |
| asynchron | asynchrone Verarbeitung
| erweiterte Eigenschaften | attachdbfilename |
| anfänglicher Dateiname | attachdbfilename |
| Verbindungszeitlimit | Verbindungszeitlimit |
| Zeitüberschreitung | Verbindungszeitlimit |
| Sprache | aktuelle Sprache |
| addr | Datenquelle |
| Adresse | Datenquelle |
| Netzwerkadresse | Datenquelle |
| Server | Datenquelle |
| Datenbank | Erstkatalog |
| vertrauenswürdige_Verbindung | integrierte Sicherheit |
| Verbindungslebensdauer | Zeitlimit für Lastausgleich |
| net | Netzwerkbibliothek |
| Netzwerk | Netzwerkbibliothek |
| pwd | Passwort |
| persistsecurityinfo | Sicherheitsinformationen beibehalten |
| uid | Benutzer-ID |
| Benutzer | Benutzer-ID |
| wsid | Workstation-ID |
+ ---------------------- + ------------------------- +

(Zusammengestellt mit Hilfe von Reflector)

Es gibt noch andere ähnliche Klassen für den Umgang ODBC und OLE DB - Verbindungszeichenfolgen, aber leider nichts für andere Datenbankanbieter - ich würde davon ausgehen , die Beweislast auf eines Anbieters Bibliothek ist eine solche Implementierung zu liefern.

adrianbanks
quelle
Randnotiz für zukünftige Zuschauer: Trusted Connection funktioniert in einem SQL Server 2014 nicht für mich. Integrierte Sicherheit funktioniert jedoch, also mache ich das!
Stachu
4
In SQL Express 2014 verwende ich trusted_connection und es funktioniert ... Beachten Sie bitte den Unterstrich und Sie müssen "yes" anstelle von "true" verwenden, wenn Sie trusted_connection verwenden
Zoran P.
10

Sie sind gleich.

Leider gibt es verschiedene Variationen wie diese, darunter:

Server / Datenquelle

Datenbank / Erstkatalog

Ich bin mir nicht sicher, woher die Variationen stammen. Ich gehe davon aus, dass einige generisch sind (nicht datenbankzentriert, sodass Ihre Verbindungszeichenfolge beim Herstellen einer Verbindung zu einem RDBMS sehr ähnlich aussieht, wenn keine Verbindung zu einem Verzeichnisdienst hergestellt wird usw.).

Cade Roux
quelle
Der Begriff catalogist Teil der relationalen Datenbanknomenklatur und bezieht sich nur auf ein RDBMS. Es wird ziemlich gut in dieser SO Antwort erklärt: stackoverflow.com/questions/7022755/…
ProfK
2

Wenig später entdeckte ich die Ursprünge des Namenskonflikts. Ein Satz von Token wurde von ODBC verwendet und ein anderer Satz für OLEDB definiert. Für Sql Server werden beide aus älteren Gründen weiterhin austauschbar unterstützt.

Trusted_Connection = true ist ODBC und Integrated Security = SSPI war OLEDB.

Peter Oehlert
quelle
1
connectionstrings.com/sql-server scheint zu sagen, dass beides für OLEDB funktioniert. Haben Sie eine andere Ressource?
AlignedDev
1

In meinem Fall habe ich einen Unterschied zwischen "Trusted_Connection" und "Integrated Security" festgestellt. Ich verwende Microsoft SQL Server 2005. Ursprünglich habe ich die Windows-Anmeldung verwendet (Integrated Security = SSPI). Als ich jedoch die Windows-Authentifizierung durch SQL Server-Authentifizierung ersetzte und Benutzer-ID und Kennwort hinzufügte, schlug das Ersetzen von SSPI durch "False" fehl. Es wurde ein "Fehler durch mehrstufige OLE DB-Operation generiert" zurückgegeben. Als ich jedoch "Integrated Security = False" durch "Trusted_Connection = no" ersetzte, funktionierte es.

Cordis Audax Agrinova
quelle
Wenn Sie die SQL Server-Authentifizierung verwenden und die Benutzer-ID und das Kennwort angeben, müssen Sie "integrierte Sicherheit" oder "vertrauenswürdige_Verbindungen" nicht erwähnen.
Grahamesd