Festlegen von Verbindungseigenschaften

Es gibt verschiedene Möglichkeiten, um die Eigenschaften für die Verbindungszeichenfolge anzugeben:

  • Als Name=Wert-Eigenschaften in der Verbindungs-URL, wenn Verbindungen mit der DriverManager-Klasse hergestellt werden.

  • Als Name=Wert-Eigenschaften im Properties-Parameter der Connect-Methode in der DriverManager-Klasse.

  • Als Werte in der entsprechenden Festlegungsmethode der Datenquelle des Treibers. Beispiel:

              datasource.setServerName(value)
    datasource.setDatabaseName(value)
    

Bei den Namen von Eigenschaften wird Groß-/Kleinschreibung unterschieden. Doppelte Eigenschaftennamen werden in der folgenden Reihenfolge aufgelöst:

  1. API-Argumente (wie Benutzer und Kennwort)

  2. Property-Auflistung

  3. Letzte Instanz in der Verbindungszeichenfolge

Darüber hinaus sind für Eigenschaftennamen unbekannte Werte zulässig. Die Groß-/Kleinschreibung der Werte wird vom JDBC-Treiber nicht überprüft.

Synonyme sind zulässig und werden in der gleichen Reihenfolge wie doppelte Eigenschaftennamen aufgelöst.

Die folgende Tabelle enthält eine Liste aller zurzeit verfügbaren Verbindungszeichenfolgeeigenschaften für den JDBC-Treiber.

Eigenschaft

Typ

Standardwert

Beschreibung

applicationName

String

[<=128 Zeichen]

null

Der Anwendungsname bzw. "Microsoft SQL Server 2005 JDBC Driver", wenn kein Name angegeben wird. Anhand dieser Eigenschaft wird die jeweilige Anwendung in den verschiedenen SQL Server-Profilerstellungs- und Protokollierungstools identifiziert.

databaseName, database

String

[<=128 Zeichen]

null

Der Name der Datenbank, zu der eine Verbindung hergestellt werden soll. Ohne Angabe wird eine Verbindung zur Standarddatenbank erstellt.

disableStatementPooling

Boolean

["true"|"false"]

true

Zurzeit wird lediglich der Wert "true" unterstützt. Wenn diese Eigenschaft auf "false" festgelegt wird, wird eine Ausnahme ausgegeben.

encrypt

Boolean

["true"|"false"]

false

Auf "true" festgelegt, um anzugeben, dass alle zwischen Client und Server gesendeten Daten von SQL Server eine Secure Sockets Layer (SSL)-Verschlüsselung verwenden, sofern auf dem Server ein Zertifikat installiert ist. Der Standardwert ist False.

failoverPartner

String

null

Der Name des Failoverservers, der in einer Datenbankspiegelungskonfiguration verwendet wird. Diese Eigenschaft wird bei einem Ausfall der Anfangsverbindung zum Prinzipalserver verwendet. Nachdem die Anfangsverbindung hergestellt wurde, wird diese Eigenschaft ignoriert. Diese Eigenschaft muss zusammen mit der databaseName-Eigenschaft verwendet werden.

hostNameInCertificate

String

NULL

Der Hostname, der beim Überprüfen des SQL Server-SSL-Zertifikats verwendet werden soll.

Wenn die hostNameInCertificate-Eigenschaft nicht angegeben oder auf NULL festgelegt ist, verwendet Microsoft SQL Server 2005 JDBC Driver den serverName-Eigenschaftenwert der Verbindungs-URL als Hostname zum Überprüfen des SQL Server-SSL-Zertifikats.

NoteHinweis:

Diese Eigenschaft wird in Kombination mit der encrypt-Eigenschaft und der trustServerCertificate-Eigenschaft verwendet. Diese Eigenschaft hat nur dann Auswirkungen auf die Zertifikatsüberprüfung, wenn die encrypt-Eigenschaft auf "true" festgelegt ist und trustServerCertificate auf "false" festgelegt ist.

instanceName

String

[<=128 Zeichen]

null

Der Name der SQL Server 2000- oder SQL Server 2005-Instanz, zu der eine Verbindung hergestellt werden soll. Ohne Angabe wird eine Verbindung zur Standardinstanz erstellt. Wenn "instanceName" und "port" angegeben werden, finden Sie nützliche Informationen in den Hinweisen für "port".

integratedSecurity

Boolean

["true"|"false"]

false

Setzen Sie diese Eigenschaft auf "true", wenn von SQL Server für die Authentifizierung des Benutzers der Anwendung die Windows-Anmeldeinformationen verwendet werden sollen. Wenn diese Eigenschaft auf "true" gesetzt ist, sucht der JDBC-Treiber im Cache für Anmeldeinformationen des lokalen Computers die Anmeldeinformationen, die bei der Anmeldung beim Computer oder Netzwerk angegeben wurden. Ist diese Eigenschaft auf "false" gesetzt, müssen Benutzername und Kennwort angegeben werden.

NoteHinweis:

Diese Verbindungseigenschaft wird nur auf Microsoft Windows-Betriebssystemen unterstützt.

lastUpdateCount

Boolean

["true"|"false"]

true

Wenn der Wert dieser Eigenschaft auf "true" gesetzt ist, wird nur die letzte Updatezählung einer SQL-Anweisungen zurückgegeben, die an den Server übergeben wurde. Die Eigenschaft kann in einzelnen SELECT-, INSERT- oder DELETE-Anweisungen verwendet werden, wenn zusätzliche Updatezählungen von Servertriggern ignoriert werden sollen. Wenn diese Eigenschaft auf "false" gesetzt ist, werden alle Updatezählungen zurückgegeben, einschließlich der von Servertriggern.

NoteHinweis:

Diese Eigenschaft ist nur gültig, wenn sie mit den executeUpdate-Methoden verwendet wird.

lockTimeout

int

-1

Die Wartezeit in Millisekunden, bevor die Datenbank ein Sperrtimeout meldet. Standardmäßig wird unendlich lang gewartet. Wird dieser Wert angegeben, wird er als Standardwert für alle Anweisungen der Verbindung verwendet. Mit Statement.setQueryTimeout() kann das Timeout für bestimmte Anweisungen eingestellt werden. Der Wert kann auch 0 sein (keine Wartezeit).

loginTimeout

int [0..65535]

0

Die Wartezeit in Sekunden, bevor der Treiber bei einem Verbindungsfehler ein Timeout meldet. Der Wert Null (0) bedeutet, dass kein Timeout verwendet wird. Ein von Null verschiedener Wert gibt die Wartezeit in Sekunden an, bevor der Treiber bei einem Verbindungsfehler ein Timeout meldet.

packetSize

int [-1| 0 | 512..32767]

8000

Die Netzwerkpaketgröße in Byte, die für die Kommunikation mit SQL Server verwendet wird. Ein Wert von -1 gibt an, dass die Standardpaketgröße des Servers verwendet wird. Ein Wert von 0 gibt an, dass der Maximalwert verwendet wird, d. h. 32767. Wenn diese Eigenschaft auf einen Wert außerhalb des zulässigen Bereichs festgelegt wird, wird eine Ausnahme ausgelöst.

NoteWichtig:

Das Verwenden der packetSize-Eigenschaft bei aktivierter Verschlüsselung (encrypt=true) wird nicht empfohlen. Andernfalls könnte der Treiber einen Verbindungsfehler auslösen. Weitere Informationen finden Sie unter der setPacketSize-Methode der SQLServerDataSource-Klasse.

password

String

[<=128 Zeichen]

null

Das Datenbankkennwort.

portNumber, port

int [0..65535]

1433

Der Port, der von SQL Server überwacht wird. Wird die Portnummer in der Verbindungszeichenfolge angegeben, erfolgt keine Anforderung an den SQL-Browser. Wenn "port" und "instanceName" angegeben werden, wird die Verbindung zum angegebenen Port hergestellt. "instanceName" wird jedoch überprüft. Wenn "instanceName" und Port nicht zueinander passen, wird ein Fehler ausgegeben.

NoteWichtig:

Es wird empfohlen, immer die Portnummer anzugeben, da dies sicherer ist als die Verwendung des SQL-Browsers.

responseBuffering

String

["full"|"adaptive"]

full

Wenn diese Eigenschaft auf "full" festgelegt ist, wird das gesamte Resultset vom Server gelesen, wenn eine Anweisung ausgeführt wird. Der Standardmodus lautet "full" für Microsoft SQL Server 2005 JDBC Driver Version 1.2. Dabei wird eine Abwärtskompatibilität mit Microsoft SQL Server 2005 JDBC Driver Version 1.0 und 1.1 bereitgestellt. Wenn diese Eigenschaft auf "adaptive" festgelegt ist, werden so wenig Daten wie möglich gepuffert, wenn notwendig. Der bevorzugte Modus für Microsoft SQL Server 2005 JDBC Driver Version 1.2 lautet "adaptive".

selectMethod

String

["direct"|"cursor"]

direct

Wird diese Eigenschaft auf "cursor" eingestellt, wird für jede Abfrage, die auf der Verbindung erstellt wird, bei TYPE_FORWARD_ONLY- und CONCUR_READ_ONLY-Cursorn ein Datenbankcursor erstellt. Diese Eigenschaft ist normalerweise nur dann erforderlich, wenn die Anwendung sehr umfangreiche Resultsets generiert, die nicht vollständig in den Clientspeicher übernommen werden können. Wird diese Eigenschaft "cursor" eingestellt, wird nur eine begrenzte Anzahl von Resultsetzeilen in den Clientspeicher übernommen. Standardmäßig werden alle Resultsetzeilen in den Clientspeicher übernommen. Dieses Verhalten weist die höchste Leistung auf, wenn die Anwendung alle Zeilen verarbeitet.

sendStringParametersAsUnicode

Boolean

["true"|"false"]

true

Setzen Sie diese Eigenschaft auf "false", um anzugeben, dass die vorbereiteten Parameter für Zeichendaten als ASCII anstatt als Unicode gesendet werden. Dieser Parameter kann die Leistung bei Indexsuchen für Zeichendaten in Nicht-Unicode-, SQL Server 2000- oder SQL Server 2005-Tabellen steigern. ASCII-Zeilenschlüssel können beispielsweise ohne Konvertierungsaufwand von Unicode direkt verglichen werden. Weitere Informationen finden Sie im Microsoft-Artikel unter support.microsoft.com/kb/271566.

serverName, server

String

null

Der Computer, auf dem SQL Server ausgeführt wird.

userName, user

String

[<=128 Zeichen]

null

Der Datenbankbenutzer.

trustServerCertificate

Boolean

["true"|"false"]

false

Auf "true" festgelegt, um anzugeben, dass Microsoft SQL Server 2005 JDBC Driver das SQL Server-SSL-Zertifikat nicht überprüft.

Bei "true" wird dem SQL Server-SSL-Zertifikat automatisch vertraut, wenn die Kommunikationsebene mit SSL verschlüsselt ist.

Bei "false" überprüft Microsoft SQL Server 2005 JDBC Driver das Server-SSL-Zertifikat. Wenn bei der Überprüfung des Serverzertifikats ein Fehler auftritt, löst der Treiber einen Fehler aus und trennt die Verbindung. Der Standardwert ist "false".

NoteHinweis:

Diese Eigenschaft wird in Kombination mit der encrypt-Eigenschaft verwendet. Diese Eigenschaft hat nur dann Auswirkungen auf die Überprüfung des SSL-Serverzertifikats, wenn die encrypt-Eigenschaft auf "true" festgelegt ist.

trustStore

String

NULL

Der Pfad (einschließlich Dateiname) der Datei trustStore des Servers. Die Datei trustStore enthält die Liste der Zertifikate, denen der Client vertraut.

Wenn diese Eigenschaft nicht angegeben oder auf NULL festgelegt ist, verwendet der Treiber die Suchregeln der Trust-Manager-Factory, um den zu verwendenden Zertifikatspeicher zu ermitteln.

Die Standard-SunX509 TrustManagerFactory versucht, die vertrauenswürdigen Informationen in der folgenden Suchreihenfolge zu suchen:

  • Eine von der Java Virtual Machine (JVM)-Systemeigenschaft "javax.net.ssl.trustStore" angegebene Datei.

  • Datei "<java-home>/lib/security/jssecacerts".

  • Datei "<java-home>/lib/security/cacerts".

Weitere Informationen finden Sie in der Dokumentation zur SUNX509 TrustManager-Schnittstelle auf der Sun Microsystems-Website.

NoteHinweis:

Diese Eigenschaft hat nur dann Auswirkungen auf die Suche nach trustStore für das Zertifikat, wenn die encrypt-Eigenschaft auf "true" festgelegt ist und die trustServerCertificate-Eigenschaft auf "false" festgelegt ist.

trustStorePassword

String

NULL

Das Kennwort, das zum Überprüfen der Integrität der trustStore-Daten verwendet wird.

Wenn die trustStore-Eigenschaft festgelegt ist, die trustStorePassword-Eigenschaft jedoch nicht festgelegt wurde, wird die Integrität von trustStore nicht überprüft.

Wenn die trustStore-Eigenschaft und die trustStorePassword-Eigenschaft nicht angegeben wurden, verwendet der Treiber die JVM-Systemeigenschaften "javax.net.ssl.trustStore" und "javax.net.ssl.trustStorePassword". Wenn die Systemeigenschaft "javax.net.ssl.trustStorePassword" nicht angegeben wird, wird die Integrität von trustStore nicht überprüft.

Wenn die trustStore-Eigenschaft nicht festgelegt ist, die trustStorePassword-Eigenschaft jedoch festgelegt ist, verwendet der JDBC-Treiber die von "javax.net.ssl.trustStore" angegebene Datei als Vertrauensspeicher, und die Integrität des Vertrauensspeichers wird mithilfe des angegebenen trustStorePassword überprüft. Dies kann erforderlich sein, wenn in der Clientanwendung das Kennwort nicht in der JVM-Systemeigenschaft gespeichert werden soll.

NoteHinweis:

Die trustStorePassword-Eigenschaft hat nur dann Auswirkungen auf die Suche nach trustStore für das Zertifikat, wenn die encrypt-Eigenschaft auf "true" festgelegt ist und die trustServerCertificate-Eigenschaft auf "false" festgelegt ist.

workstationID

String

[<=128 Zeichen]

<leere Zeichenfolge>

Die ID der Arbeitsstation. Anhand dieser Eigenschaft wird die jeweilige Arbeitsstation in den verschiedenen SQL Server-Profilerstellungs- und Protokollierungstools identifiziert. Wenn dies nicht angegeben wird, wird die <leere Zeichenfolge> verwendet.

xopenStates

Boolean

["true"|"false"]

false

Setzen Sie diese Eigenschaft auf "true", um anzugeben, dass der Treiber in Ausnahmen XOPEN-kompatible Statuscodes zurückgibt. Standardmäßig werden SQL 99-Statuscodes zurückgegeben.

Siehe auch

Andere Ressourcen

Verbinden von SQL Server mit dem JDBC-Treiber