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 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 mit dem Prinzipalserver verwendet. Nachdem die Anfangsverbindung hergestellt wurde, wird diese Eigenschaft ignoriert. Diese Eigenschaft muss zusammen mit der databaseName-Eigenschaft verwendet werden.

HinweisHinweis:
Der Treiber unterstützt keine Angabe der Portnummer der Serverinstanz für die Failoverpartnerinstanz innerhalb der failoverPartner-Eigenschaft in der Verbindungszeichenfolge. Die Eigenschaften serverName, instanceName und portNumber der Prinzipalserverinstanz und die failoverPartner-Eigenschaft der Failoverpartnerinstanz können nicht in der gleichen Verbindungszeichenfolge angegeben 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 JDBC Driver den serverName-Eigenschaftenwert der Verbindungs-URL als Hostnamen zum Überprüfen des SQL Server-SSL-Zertifikats.

HinweisHinweis:
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" und trustServerCertificate auf "false" festgelegt ist.

instanceName

String

[<=128 Zeichen]

NULL

Der Name der SQL Server-Instanz, mit der eine Verbindung hergestellt werden soll. Ohne Angabe wird eine Verbindung mit der 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.

HinweisHinweis:
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.

HinweisHinweis:
Diese Eigenschaft ist nur gültig, wenn sie mit den executeUpdate-Methoden verwendet wird. Alle anderen execute-Methoden geben alle Ergebnisse und Updatezählungen zurück. Diese Eigenschaft betrifft nur Updatezählungen, die von Servertriggern zurückgegeben werden. Sie betrifft keine Resultsets oder Fehler, die Folge der Ausführung eines Triggers sind.

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]

15

Die Wartezeit in Sekunden, bevor der Treiber bei einem Verbindungsfehler ein Timeout meldet. Mit dem Wert 0 wird angegeben, dass das Timeout das Standardsystemtimeout ist, das standardmäßig auf 15 Sekunden festgelegt ist. Ein Wert ungleich 0 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.

HinweisWichtig:
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.

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

responseBuffering

String

["full"|"adaptive"]

adaptive

Wenn diese Eigenschaft auf "adaptive" festgelegt ist, werden nach Bedarf so wenig Daten wie möglich gepuffert. Der Standardmodus für Microsoft SQL Server JDBC Driver, Version 2.0 oder höher, ist "adaptive".

Wenn diese Eigenschaft auf "full" festgelegt ist, wird das gesamte Resultset vom Server gelesen, wenn eine Anweisung ausgeführt wird. Der Standardmodus ist "full" für Microsoft SQL Server 2005 JDBC Driver, Version 1.2. Dies dient der Abwärtskompatibilität mit Microsoft SQL Server 2005 JDBC Driver, Version 1.0 und 1.1.

HinweisHinweis:
Nach einer Aktualisierung des JDBC-Treibers von Version 1.2 auf 2.0 ist "adaptive" das Standardpufferungsverhalten. Wenn die responseBuffering-Eigenschaft in der Anwendung nie festgelegt wurde und Sie das Standardverhalten aus Version 1.2 in der Anwendung beibehalten möchten, müssen Sie die responseBufferring-Eigenschaft entweder in den Verbindungseigenschaften oder mit der setResponseBuffering-Methode des SQLServerStatement-Objekts auf "full" festlegen.

selectMethod

String

["direct"|"cursor"]

direct

Wenn diese Eigenschaft auf "cursor" festgelegt wird, wird bei TYPE_FORWARD_ONLY- und CONCUR_READ_ONLY-Cursorn für jede Abfrage, die für die Verbindung erstellt wird, 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

Wenn die sendStringParametersAsUnicode-Eigenschaft auf "true" festgelegt ist, werden String-Parameter im Unicode-Format an den Server gesendet.

Wenn die sendStringParametersAsUnicode-Eigenschaft auf "false" festgelegt ist, werden String-Parameter nicht im Unicode-Format, sondern in einem anderen Format wie ASCII/MBCS an den Server gesendet.

Der Standardwert für die sendStringParametersAsUnicode-Eigenschaft ist "true".

HinweisHinweis:
In Version 2.0 von JDBC Driver ist die sendStringParametersAsUnicode-Eigenschaft nur aktiviert, wenn ein Parameterwert mit den JDBC-Typen CHAR, VARCHAR oder LONGVARCHAR gesendet wird. Die neuen JDBC 4.0-Methoden für nationale Zeichensätze wie setNString, setNCharacterStream und setNClob der SQLServerPreparedStatement-Klasse und der SQLServerCallableStatement-Klasse senden ihre Parameterwerte unabhängig vom Wert dieser Eigenschaft immer im Unicode-Format an den Server. Um eine optimale Leistung mit den JDBC-Datentypen CHAR, VARCHAR und LONGVARCHAR zu erzielen, sollten in einer Anwendung, in der Version 2.0 des JDBC-Treibers verwendet wird, die sendStringParametersAsUnicode-Eigenschaft auf "false" festgelegt und die Methoden für nicht nationale Zeichensätze setString, setCharacterStream und setClob der SQLServerPreparedStatement-Klasse und der SQLServerCallableStatement-Klasse verwendet werden. Wenn die sendStringParametersAsUnicode-Eigenschaft in der Anwendung auf "false" festgelegt und eine Methode für nicht nationale Zeichensätze für den Zugriff auf Unicode-Datentypen auf Serverseite verwendet wird (z. B. nchar, nvarchar und ntext), gehen möglicherweise Daten verloren, wenn die Datenbanksortierung die von der Methode für nicht nationale Zeichensätze im String-Parameter übergebenen Zeichen nicht unterstützt. Beachten Sie, dass eine Anwendung die Methoden für nationale Zeichensätze setNString, setNCharacterStream und setNClob der SQLServerPreparedStatement-Klasse und der SQLServerCallableStatement-Klasse für die JDBC-Datentypen NCHAR, NVARCHAR und LONGNVARCHAR verwenden sollte.

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" festlegen, um anzugeben, dass Microsoft SQL Server 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 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".

HinweisHinweis:
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.

HinweisHinweis:
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.

HinweisHinweis:
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