Impostazione delle proprietà delle connessioni
È possibile specificare le proprietà della stringa di connessione in diversi modi:
Come proprietà nome=valore nell'URL della connessione, quando si crea la connessione usando la classe DriverManager. Per la sintassi della stringa di connessione, vedere Costruzione dell'URL della connessione.
Come proprietà nome=valore nel parametro Properties del metodo Connect nella classe DriverManager.
Come valori nel metodo setter appropriato dell'origine dati del driver. Ad esempio:
datasource.setServerName(value) datasource.setDatabaseName(value)
Osservazioni:
Per i nomi delle proprietà non viene fatta distinzione tra maiuscole e minuscole e i nomi di proprietà duplicati vengono risolti nell'ordine seguente:
- Argomenti API (come utente e password)
- Raccolta delle proprietà
- Ultima istanza nella stringa di connessione
L'uso del valore sconosciuto è consentito per i nomi delle proprietà e tale valore non viene convalidato dal driver JDBC per la distinzione tra maiuscole e minuscole.
I sinonimi sono consentiti e vengono risolti in un ordine simile a quello utilizzato per i nomi di proprietà duplicati.
Proprietà
Nella tabella seguente sono elencate tutte le proprietà della stringa di connessione attualmente disponibili per il driver JDBC.
Proprietà Type Default |
Descrizione |
---|---|
accessToken String Null |
(Versione 6.0+) Usare questa proprietà per connettersi a un database usando un token di accesso. Non è possibile impostare accessToken usando l'URL di connessione. |
accessTokenCallbackClass String Null |
(Versione 12.4 e successive) Il nome della classe che implementa la richiamata da utilizzare con la richiamata del token di accesso. |
applicationIntent String ReadWrite |
(Versione 6.0+) Dichiara il tipo di carico di lavoro dell'applicazione per connettersi a un server. I valori possibili sono ReadOnly e ReadWrite. Per altre informazioni sul ripristino di emergenza, vedere Supporto del driver JDBC per disponibilità elevata e ripristino di emergenza. |
applicationName String [<=128 caratteri] Null |
Nome dell'applicazione o "Microsoft JDBC Driver per SQL Server" se non viene specificato alcun nome. Usata per identificare l'applicazione specifica in vari strumenti di registrazione e profilatura di SQL Server. |
autenticazione String NotSpecified |
(Versione 6.0+) Questa proprietà facoltativa indica il metodo di autenticazione da usare per la connessione. I valori possibili sono ActiveDirectoryIntegrated, ActiveDirectoryPassword, ActiveDirectoryManagedIdentity (versione 12.2 e successive), ActiveDirectoryMSI (versione 7.2 e successive), ActiveDirectoryInteractive (versione 9.2 e sucessive), ActiveDirectoryServicePrincipal (versione 9.2 e successive), SqlPassword e l'impostazione predefinita NotSpecified. Usare ActiveDirectoryIntegrated (versione 6.0 e successive) per connettersi a SQL usando l'autenticazione integrata di Windows. Usare ActiveDirectoryPassword (versione 6.0 e successive) per connettersi a SQL usando un nome entità e una password di Microsoft Entra. Usare ActiveDirectoryManagedIdentity (versione 12.2 e successive) o ActiveDirectoryMSI (versione 7.2 e successive) per connettersi a SQL dall'interno di una risorsa di Azure. Ad esempio, una macchina virtuale di Azure, un servizio app o app per le funzioni che usano l'autenticazione tramite l'identità gestita. I due tipi di identità gestite supportate dal driver quando si utilizza la modalità di autenticazione ActiveDirectoryManagedIdentity o ActiveDirectoryMSI sono: 1. Identità gestita assegnata dal sistema: usata per acquisire accessToken per impostazione predefinita. 2. Identità gestita assegnata dall'utente: usata per acquisire accessToken se l'ID client di un'identità gestita è specificato con la proprietà di connessione msiClientId. Usare ActiveDirectoryInteractive per connettersi a un database tramite un flusso di autenticazione interattivo. Usare ActiveDirectoryServicePrincipal (versione 9.2 e successive) per connettersi a un database usando l'ID client e il segreto di un'identità dell'entità servizio. Specificare l'ID client nella proprietà userName e il segreto nella proprietà password (10.2+). Usare SqlPassword per connettersi a SQL Server tramite le proprietà userName/user e password. Usare NotSpecified se nessuno di questi metodi di autenticazione è necessario. Importante: se l'autenticazione è impostata su ActiveDirectoryIntegrated, è necessario che siano installate le due librerie seguenti: mssql-jdbc_auth-<versione>-<arch>.dll (disponibile nel pacchetto del driver JDBC) e Microsoft Authentication Library for SQL Server (ADAL.DLL). Microsoft Authentication Library può essere installata da Microsoft ODBC Driver for SQL Server o da Microsoft OLE DB Driver per SQL Server. Il driver JDBC supporta solo la versione 1.0.2028.318 e successive per ADAL.DLL. Nota: quando la proprietà di autenticazione è impostata su un valore diverso da NotSpecified, per impostazione predefinita il driver usa il meccanismo Transport Layer Security (TLS), noto in precedenza come crittografia Secure Sockets Layer (SSL). Per informazioni su come configurare l'autenticazione di Microsoft Entra, vedere Usare l'autenticazione di Microsoft Entra. |
authenticationScheme String NativeAuthentication |
Indica il tipo di sicurezza integrata che si desidera venga utilizzata dall'applicazione. I valori possibili sono JavaKerberos, NTLM (versione 7.4+) e il valore predefinito NativeAuthentication. NativeAuthentication fa in modo che il driver carichi mssql-jdbc_auth-<version>-<arch>.dll (ad esempio, mssql-jdbc_auth-8.2.2.x64.dll ) in Windows, che viene usato per ottenere le informazioni sull'autenticazione integrata. La libreria di autenticazione nativa caricata viene denominata sqljdbc_auth.dll quando si usano le versioni del driver da 6.0 a 7.4.Quando si usa authenticationScheme=JavaKerberos, è necessario specificare il nome di dominio completo (FQDN) nella proprietà serverName o serverSpn. In caso contrario, si verifica un errore: Server not found in Kerberos database (Server non trovato nel database Kerberos). Per altre informazioni sull'uso di authenticationScheme=JavaKerberos, vedere Uso dell'autenticazione integrata Kerberos per la connessione a SQL Server. Quando si usa authenticationScheme=NTLM, è necessario specificare il dominio Windows usando la proprietà domain o domainName, le credenziali Windows nella proprietà user o userName e la password nella proprietà password. In caso contrario, si verifica un errore (le proprietà di connessione devono essere specificate). |
cacheBulkCopyMetadata boolean ["true" | "false"] false |
(Versione 12.8+) Quando si usa use UseBulkCopyForBatchInsert=true, questa proprietà viene usata per indicare al driver se deve memorizzare nella cache i metadati delle colonne di destinazione a livello di connessione. Se è impostato su true , assicurarsi che la destinazione non cambi tra inserimenti in blocco, perché il driver non ha un modo per gestire questa modifica. |
calcBigDecimalPrecision boolean ["true" | "false"] false |
(Versione 12.6 e successive) Flag per indicare se il driver deve calcolare la precisione per gli input BigDecimal, anziché usare il valore massimo consentito per la precisione (38). |
cancelQueryTimeout int -1 |
(Versione 6.4+) Si può usare questa proprietà per annullare un oggetto queryTimeout impostato sulla connessione. L'esecuzione della query si blocca e non genera un'eccezione se la connessione TCP al server viene rimossa automaticamente. Questa proprietà è applicabile solo se per la connessione è impostato anche "queryTimeout". Il driver attende la quantità totale di secondi di cancelQueryTimeout + queryTimeout per eliminare la connessione e chiudere il canale. Il valore predefinito per questa proprietà è -1 e il comportamento è l'attesa indefinita. |
ClientCertificate String Null |
(Versione 8.4+) Specifica la posizione del certificato da usare per l'autenticazione con certificato client. Il driver JDBC supporta le estensioni di file PFX, PEM, DER e CER. Per informazioni dettagliate, vedere Autenticazione del certificato client per scenari di loopback. |
clientKey String Null |
(Versione 8.4+) Indica il percorso di un file della chiave privata per i certificati PEM, DER e CER specificati dall'attributo clientCertificate. Per informazioni dettagliate, vedere Autenticazione del certificato client per scenari di loopback. |
clientKeyPassword String Null |
(Versione 8.4+) Specifica la stringa della password facoltativa per accedere alla chiave privata del file clientKey. Per informazioni dettagliate, vedere Autenticazione del certificato client per scenari di loopback. |
columnEncryptionSetting String ["Enabled" | "Disabled"] Disabilitata |
(Versione 6.0+) Impostare su "Enabled" per usare la funzionalità Always Encrypted (AE). Quando la funzionalità Always Encrypted è abilitata, il driver JDBC esegue in modo trasparente la crittografia e la decrittografia dei dati sensibili archiviati nelle colonne del database crittografato nel server. Per altre informazioni su Always Encrypted, vedere Uso di Always Encrypted con il driver JDBC. Nota: la funzionalità Always Encrypted è disponibile con SQL Server 2016 o versioni successive e con il database SQL di Azure. |
connectRetryCount int [0..255] 1 |
(Versione 9.4+) Numero di tentativi di riconnessione in caso di errore di connessione. |
connectRetryInterval int [1..60] 10 |
(Versione 9.4+) Numero di secondi tra ogni tentativo di riconnessione. |
databaseName, database String [<=128 caratteri] Null |
Nome del database a cui connettersi. Se non viene specificato, viene creata una connessione al database predefinito. |
datetimeParameterType String ["datetime" | "datetime2" | "datetimeoffset"] datetime2 |
(Versione 12.2 e successive) Tipo di dati SQL da usare per i parametri di data/data e ora Java. Quando ci si connette a SQL Server 2016 o versione successiva e si interagisce con i valori "datetime" legacy, i client possono trarre vantaggio dall'impostazione della proprietà su "datetime". Questa impostazione attenua i problemi di conversione lato server tra i valori "datetime" e "datetime2". Per ulteriori informazioni, vedere Affrontare la modifica del comportamento di conversione da datetime a datetime2 a partire da SQL Server 2016 |
delayLoadingLobs boolean ["true" | "false"] true |
Flag che indica se trasmettere o meno in flusso tutti gli oggetti LOB recuperati da ResultSet. Impostando questa proprietà su "false", l'intero oggetto LOB verrà caricato in memoria senza streaming. |
domainName, dominio String Null |
(Versione 7.4+) Dominio Windows verso cui eseguire l'autenticazione quando si usa l'autenticazione NTLM. |
disableStatementPooling boolean ["true" | "false"] true |
Flag che indica se deve essere usato il pooling dell'istruzione. |
enablePrepareOnFirst... PreparedStatementCall boolean ["true" | "false"] false |
Impostare su "true" per abilitare la creazione dell'handle di un'istruzione preparata chiamando sp_prepexec alla prima esecuzione dell'istruzione preparata. Impostare su "false" per cambiare la prima esecuzione di un'istruzione preparata per chiamare sp_executesql e non preparare l'istruzione. Se si verifica una seconda esecuzione, chiama sp_prepexec per configurare un handle di istruzione preparata. |
enclaveAttestationUrl String Null |
(Versione 8.2+) Questa proprietà facoltativa indica l'URL dell'endpoint del servizio di attestazione da usare per Always Encrypted con enclavi sicure. Per altre informazioni sulle Always Encrypted con enclavi sicure, vedere Always Encrypted con enclavi sicure. |
enclaveAttestationProtocol String Null |
(Versione 8.2+) Questa proprietà facoltativa indica il protocollo di attestazione da usare per Always Encrypted con enclavi sicure. Attualmente gli unici valori supportati per questo campo sono HGS, AAS e NONE (NONE è supportato solo dalla versione 11.2+). Per altre informazioni sulle Always Encrypted con enclavi sicure, vedere Always Encrypted con enclavi sicure. |
crittografare String Null |
Impostare su "true" per specificare che SQL Server usa la crittografia TLS per tutti i dati inviati tra il client e il server se nel server è installato un certificato. Il valore predefinito è "true" nella versione 10.2 e successive e "false" nella versione 9.4 e precedenti. Nella versione 6.0 e successive è presente una nuova impostazione di connessione 'authentication' che usa la crittografia TLS per impostazione predefinita. Per altre informazioni su questa proprietà, vedere la proprietà 'authentication'. Nella versione 11.2.0 e successive, la proprietà encrypt è stata modificata da boolean a string, consentendo il supporto TDS 8.0 quando la proprietà è impostata su strict. |
failoverPartner String Null |
Il nome del server di failover utilizzato nella configurazione del mirroring del database. Questa proprietà viene usata quando si verifica un errore di connessione iniziale al server principale. Dopo aver eseguito la connessione iniziale, questa proprietà viene ignorata. Deve essere usata con la proprietà databaseName. Nota: il driver non supporta il numero di porta dell'istanza del server per l'istanza del partner di failover nella proprietà failoverPartner della stringa di connessione. Il driver supporta invece l'indicazione delle proprietà serverName, instanceName e portNumber dell'istanza del server principale e della proprietà failoverPartner dell'istanza del partner di failover nella stessa stringa di connessione. Se si specifica un nome di rete virtuale nella proprietà di connessione Server, non è possibile usare il mirroring del database. Per altre informazioni sul ripristino di emergenza, vedere Supporto del driver JDBC per disponibilità elevata e ripristino di emergenza. |
fips boolean ["true" | "false"] "false" |
Per Java Virtual Machine (JVM) abilitato per FIPS, questa proprietà deve essere true. |
fipsProvider String Null |
Provider FIPS configurato nella JVM. Ad esempio, BCFIPS o SunPKCS11-NSS. Rimossa nella versione 6.4.0. Per altre informazioni, vedere il problema GitHub 460. |
gsscredential org.ietf.jgss.GSSCredential Null |
(Versione 6.2+) Le credenziali utente da usare per la delega vincolata Kerberos possono essere passate in questa proprietà. Questa impostazione deve essere usata con integratedSecurity come true e JavaKerberos come authenticationScheme. |
hostNameInCertificate String Null |
Nome host da usare per convalidare il certificato TLS/SSL di SQL Server. L'opzione hostNameInCertificate può essere usata per specificare il nome host nelle situazioni in cui il nome o i nomi utilizzato/i nel certificato non corrisponde/corrispondono al nome passato alla proprietà serverName. Se tuttavia è presente una corrispondenza, l'opzione hostNameInCertificate non deve essere usata. Se la proprietà hostNameInCertificate non è specificata o è impostata su Null, Microsoft JDBC Driver per SQL Server usa il valore della proprietà serverName nell'URL di connessione come nome host per la convalida del certificato TLS/SSL di SQL Server. Nota: come descritto nel paragrafo precedente, non è consigliabile impostare l'opzione hostNameInCertificate a meno che non sia possibile confermare il nome o i nomi nel certificato che non corrisponde/corrispondono a quelli passati nell'opzione serverName. Nota: questa proprietà viene usata in combinazione con le proprietà encrypt/authentication e la proprietà trustServerCertificate. Questa proprietà influisce sulla convalida del certificato se la connessione usa la crittografia TLS e l'oggetto trustServerCertificate è impostato su "false". Perché una connessione TLS riesca, assicurarsi che il valore passato a hostNameInCertificate corrisponda al nome comune o al nome DNS nel nome soggetto alternativo (SAN, Subject Alternate Name) del certificato del server. Per altre informazioni sul supporto della crittografia, vedere Informazioni sul supporto della crittografia. |
instanceName String [<=128 caratteri] Null |
Nome dell'istanza del database a cui connettersi. Quando il nome è specificato, viene creata una connessione all'istanza predefinita. Nel caso in cui vengano specificate entrambe le proprietà instanceName e port, vedere le note relative alla proprietà port. Se si specifica un nome di rete virtuale nella proprietà di connessione Server, non è possibile usare la proprietà di connessione instanceName. Per altre informazioni sul ripristino di emergenza, vedere Supporto del driver JDBC per disponibilità elevata e ripristino di emergenza. |
integratedSecurity boolean ["true" | "false"] false |
Impostare su "true" per indicare che le credenziali di Windows vengono usate da SQL Server nei sistemi operativi Windows. Se impostata su "true", il driver JDBC cerca nella cache delle credenziali nel computer locale le credenziali che sono state specificate quando un utente ha eseguito l'accesso al computer o alla rete. Impostare su "true" (con authenticationscheme=JavaKerberos), per indicare che le credenziali Kerberos vengono usate da SQL Server. Per altre informazioni sull'autenticazione Kerberos, vedere Uso dell'autenticazione integrata Kerberos per la connessione a SQL Server. Impostare su "true" (con authenticationscheme=NTLM) per indicare che le credenziali NTLM vengono usate da SQL Server. Se "false", è necessario fornire il nome utente e la password. |
ipaddresspreference String [<=128 caratteri] IPv4First |
Preferenza IP usata dall'applicazione client. Con IPV4First, il driver attraversa prima gli indirizzi IPv4. Se non riesce a connettersi ad alcun indirizzo IPv4, il driver prosegue e prova gli indirizzi IPv6, se presenti. Con IPV6First, il driver attraversa prima gli indirizzi IPv6. Se non riesce a connettersi ad alcun indirizzo IPv6, il driver prosegue e prova gli indirizzi IPv4, se presenti. Con UsePlatformDefault, il driver attraversa tutti gli indirizzi IP nei loro ordini iniziali dalla risoluzione DNS. |
jaasConfigurationName String SQLJDBCDriver |
(Versione 6.2 e successive) Ogni connessione a SQL Server può usare il proprio nome di configurazione di accesso JAAS per stabilire una connessione Kerberos. Il nome della voce di configurazione può essere passato attraverso questa proprietà. Questa proprietà è destinata all'uso durante la creazione di un file di configurazione Kerberos. Per impostazione predefinita, il driver cerca il nome SQLJDBCDriver .Se non viene trovata una configurazione esterna, il driver imposta useDefaultCcache = true per i JVM IBM e useTicketCache = true per altri JVM. |
keyStoreAuthentication String Null |
(Versione 6.0+) Questa proprietà identifica l'archivio chiavi da usare con Always Encrypted e determina un meccanismo di autenticazione usato per l'autenticazione nell'archivio chiavi. Il driver supporta senza problemi la configurazione dell'archivio chiavi Java quando si imposta "keyStoreAuthentication=JavaKeyStorePassword". Per usare questa proprietà, è necessario impostare anche le proprietà keyStoreLocation e keyStoreSecret per l'archivio chiavi Java. Per altre informazioni su Always Encrypted, vedere Uso di Always Encrypted con il driver JDBC. A partire da Microsoft JDBC Driver 8.4, è possibile impostare "keyStoreAuthentication=KeyVaultManagedIdentity" o "keyStoreAuthentication=KeyVaultClientSecret" per eseguire l'autenticazione con Azure Key Vault tramite le identità gestite. Per altre informazioni su Always Encrypted, vedere Uso di Always Encrypted con il driver JDBC. |
keyStoreLocation String Null |
(Versione 6.0+) Quando keyStoreAuthentication=JavaKeyStorePassword, la proprietà keyStoreLocation identifica il percorso del file dell'archivio chiavi Java in cui è memorizzata la chiave master della colonna da usare con i dati Always Encrypted. Il percorso deve includere il nome file dell'archivio chiavi. Per altre informazioni su Always Encrypted, vedere Uso di Always Encrypted con il driver JDBC. |
keyStorePrincipalId String Null |
(Versione 8.4 e successive) Quando keyStoreAuthentication=KeyVaultManagedIdentity, la proprietà keyStorePrincipalId specifica un ID client dell'applicazione Microsoft Entra valido. Per altre informazioni su Always Encrypted, vedere Uso di Always Encrypted con il driver JDBC. |
keyStoreSecret String Null |
(Version 6.0+) Quando keyStoreAuthentication=JavaKeyStorePassword, la proprietà keyStoreSecret identifica la password da usare per l'archivio chiavi e per la chiave. Quando si usa l'archivio chiavi Java, la password dell'archivio chiavi e la password della chiave devono essere uguali. Per altre informazioni su Always Encrypted, vedere Uso di Always Encrypted con il driver JDBC. |
lastUpdateCount boolean ["true" | "false"] true |
Un valore "true" restituisce solo l'ultimo numero di aggiornamenti da un'istruzione SQL passata al server. Inoltre, viene usato solo in singole istruzioni SELECT, INSERT o DELETE per ignorare altri conteggi degli aggiornamenti che sono trigger del server possono causare. Impostando questa proprietà su "false" verranno restituiti tutti i conteggi di aggiornamento, inclusi quelli restituiti dai trigger del server. Nota: questa proprietà si applica solo quando viene usata con i metodi executeUpdate. Tutti gli altri metodi execute restituiscono tutti i risultati e i conteggi di aggiornamento. Questa proprietà influisce solo sui conteggi di aggiornamento restituiti dai trigger del server. Non influisce invece sui set di risultati o sugli errori risultanti in seguito all'esecuzione dei trigger. |
lockTimeout int -1 |
Il numero di millisecondi di attesa prima che il database segnali un timeout di blocco. Il comportamento predefinito è attendere per un tempo indefinito. Se l’utente non ha specificato un valore per questa proprietà, questo valore diventerà l'impostazione predefinita per tutte le istruzioni sulla connessione. In alternativa, è possibile utilizzare Statement.setQueryTimeout() per impostare il timeout della query per istruzioni specifiche. Il valore può essere 0, per indicare che l'intervallo di attesa è pari a zero. |
loginTimeout int [0..65535] 30 (versione 11.2 e successive) 15 (versione 10.2 e precedenti) |
Numero di secondi di attesa del driver prima del timeout di una connessione non riuscita. Un valore pari a zero indica che il timeout è quello predefinito di sistema. Questo valore è 30 secondi (impostazione predefinita nella versione 11.2 e successive) o 15 secondi (impostazione predefinita nella versione 10.2 e successive). Un valore diverso da zero indica il numero di secondi di attesa del driver prima del timeout di una connessione non riuscita. Se si specifica un nome di rete virtuale nella proprietà di connessione Server, è consigliabile specificare un valore di timeout di tre o più minuti per concedere tempo sufficiente alla riuscita di una connessione di failover. Per altre informazioni sul ripristino di emergenza, vedere Supporto del driver JDBC per disponibilità elevata e ripristino di emergenza. |
maxResultBuffer String Null |
(Versione 9.2+) maxResultBuffer può essere usata per impostare i byte massimi da leggere durante la lettura di un set di risultati. Se non viene specificato alcun valore, viene letto l'intero set di risultati. La dimensione può essere specificata in due modalità: 1. come dimensione di byte (ad esempio, 100 , 150M , 300K , 400G )2. come percentuale di memoria heap massima (ad esempio, 10p , 15pct , 20percent ). |
msiClientId String Null |
(Deprecato) (Versione 7.2 e successive) L'ID client dell'identità gestita (MSI) utilizzato per acquisire un accessToken per stabilire una connessione con la modalità di autenticazione ActiveDirectoryManagedIdentity o ActiveDirectoryMSI. |
multiSubnetFailover Boolean false |
Specificare sempre multiSubnetFailover=true per connettere il listener del gruppo di disponibilità di un gruppo di disponibilità SQL Server o di un'istanza del cluster di failover SQL Server.
multiSubnetFailover=true configura il driver in modo da ottenere una maggiore velocità di rilevamento del server (attualmente) attivo e una connessione più rapida a quest'ultimo. I valori possibili sono true e false. Per altre informazioni sul ripristino di emergenza, vedere Supporto del driver JDBC per disponibilità elevata e ripristino di emergenza. È possibile accedere a livello di codice alla proprietà di connessione multiSubnetFailover con getPropertyInfo, getMultiSubnetFailover e setMultiSubnetFailover. Nota: a partire da Microsoft JDBC Driver 6.0 per SQL Server, non è più necessario impostare la proprietà multiSubnetFailover su "true" per connettersi a un listener del gruppo di disponibilità. Una nuova proprietà, TransparentNetworkIPResolution, abilitata per impostazione predefinita, consente il rilevamento e la connessione al server (attualmente) attivo. |
packetSize int [-1 | 0 | 512..32767] 8000 |
Dimensioni, specificate in byte, del pacchetto di rete usato per comunicare il server. Il valore -1 indica l'utilizzo delle dimensioni del pacchetto predefinite del server. Il valore 0 indica l'utilizzo del valore massimo, ovvero 32767. Se questa proprietà è impostata su un valore che non rientra nell'intervallo valido, viene generata un'eccezione. Importante: non è consigliabile usare la proprietà packetSize quando la crittografia è abilitata (encrypt=true). altrimenti il driver potrebbe generare un errore di connessione. Per altre informazioni su questa proprietà, vedere il metodo setPacketSize della classe SQLServerDataSource. |
password String [<=128 caratteri] Null |
Password del database, se la connessione avviene con utente e password SQL. Per la connessione Kerberos con nome e password dell'entità di sicurezza, questa proprietà è impostata sulla password dell'entità di sicurezza di Kerberos. (Versione 10.2+) Quando authentication=ActiveDirectoryServicePrincipal, la proprietà password identifica la password da usare per l'entità di sicurezza Active Directory. |
portNumber, port int [0..65535] 1433 |
Porta in cui il server è in ascolto. Se nella stringa di connessione è specificato il numero di porta, non viene creata alcuna richiesta a SQLbrowser. Se vengono specificate entrambe le proprietà port e instanceName, la connessione viene eseguita alla porta specificata. Tuttavia la proprietà instanceName viene convalidata e viene generato un errore se non corrisponde alla porta. Importante: è consigliabile specificare sempre il numero di porta, poiché tale procedura è più sicura dell'uso di SQLbrowser. |
prepareMethod String ["prepexec" | "prepare"] prepexec |
(Versione 11.2.0+) Specifica il metodo prepare sottostante che deve essere usato dal driver con istruzioni preparate. Impostare su prepare per usare sp_prepare come metodo prepare. Impostare prepareMethod su questo valore comporta un passaggio iniziale separato al database per preparare l'istruzione senza valori iniziali che il database deve considerare nel piano di esecuzione. Impostare su prepexec per usare sp_prepexec come metodo prepare. Questo metodo combina l'azione di preparazione con la prima esecuzione, riducendo i round trip. Fornisce inoltre al database valori dei parametri iniziali che il database può considerare nel piano di esecuzione. |
queryTimeout int -1 |
Numero di secondi di attesa prima che si verifichi un timeout in una query. Il valore predefinito è -1 che indica un timeout infinito. L'impostazione di questo valore su 0 implica anche un'attesa indefinita. |
realm String Null |
(Versione 9.4+) Area di autenticazione Kerberos. Impostare questo valore per eseguire l'override dell'area di autenticazione Kerberos che il driver rileva automaticamente dall'area del server. |
Replica boolean ["true" | "false"] false |
(Versione 9.4+) Questa impostazione indica al server se la connessione viene usata per la replica. Se abilitata, i trigger con l'opzione NOT FOR REPLICATION non verranno attivati nella connessione. |
responseBuffering String ["full" | "adaptive"] adaptive |
Se questa proprietà è impostata su "adaptive", nel buffer verrà memorizzata, quando necessario, la quantità minima di dati possibile. La modalità predefinita è "adaptive". Se questa proprietà è impostata su "full", l'intero set di risultati viene letto dal server quando viene eseguita un'istruzione. Nota: Dopo la versione 1.2 del driver JDBC, il comportamento di buffering predefinito è "adattivo". Se si desidera mantenere il comportamento predefinito della versione 1.2 nell'applicazione, impostare la proprietà responseBuffering su "full" nelle proprietà di connessione oppure utilizzare il metodo setResponseBuffering dell'oggetto SQLServerStatement. |
selectMethod String ["direct" | "cursor"] dirette |
Se questa proprietà è impostata su "cursor", verrà creato un cursore di database per ogni query creata sulla connessione per i cursori TYPE_FORWARD_ONLY e CONCUR_READ_ONLY. Questa proprietà è in genere necessaria solo se l'applicazione genera set di risultati di grandi dimensioni che non possono essere contenuti completamente nella memoria del client. Se la proprietà è impostata su "cursor", nella memoria del client verrà mantenuto solo un numero limitato di righe del set di risultati. Il comportamento predefinito prevede che nella memoria del client siano mantenute tutte le righe del set di risultati. Questo comportamento garantisce le prestazioni più veloci quando l'applicazione sta elaborando tutte le righe. |
sendStringParameters... AsUnicode boolean ["true" | "false"] true |
Se la proprietà sendStringParametersAsUnicode è impostata su "true", i parametri String vengono inviati al server in formato Unicode. Se la proprietà sendStringParametersAsUnicode è impostata su "false", i parametri String vengono inviati al server in un formato non Unicode, ad esempio ASCII/MBCS. Il valore predefinito per la proprietà sendStringParametersAsUnicode è "true". Nota: la proprietà sendStringParametersAsUnicode viene verificata solo per inviare un valore di parametro con i tipi JDBC CHAR, VARCHAR o LONGVARCHAR. I nuovi metodi per caratteri nazionali di JDBC 4.0 includono metodi come setNString, setNCharacterStream e setNClob delle classi SQLServerPreparedStatement e SQLServerCallableStatement. Questi metodi inviano sempre i valori dei parametri al server in Unicode indipendentemente dall'impostazione di questa proprietà. Per prestazioni ottimali con i tipi di dati JDBC CHAR, VARCHAR e LONGVARCHAR, un'applicazione deve impostare la proprietà sendStringParametersAsUnicode su "false" e usare i metodi per caratteri non nazionali setString, setCharacterStream e setClob delle classi SQLServerPreparedStatement e SQLServerCallableStatement. Se l'applicazione imposta la proprietà sendStringParametersAsUnicode su "false" e usa un metodo per caratteri non nazionali per accedere ai tipi di dati Unicode sul lato server, ad esempio nchar, nvarchar e ntext, è possibile che parte dei dati vada persa se le regole di confronto del database non supportano i caratteri nei parametri String passati dal metodo per caratteri non nazionali. Un'applicazione deve usare i metodi per caratteri nazionali setNString, setNCharacterStream e setNClob delle classi SQLServerPreparedStatement e SQLServerCallableStatement per i tipi di dati JDBC NCHAR, NVARCHAR e LONGNVARCHAR. La modifica di questo valore può influire sull'ordinamento dei risultati dal database. Le differenze di ordinamento sono dovute a regole di ordinamento diverse per i caratteri Unicode e non Unicode. |
sendTemporalDataTypes... AsStringForBulkCopy boolean ["true" | "false"] true |
(Versione 8.4+) Quando questa proprietà di connessione è impostata su "false" invia i tipi di dati DATE, DATETIME, DATIMETIME2, DATETIMEOFFSET, SMALLDATETIME e TIME come i rispettivi tipi anziché come String. Con questa proprietà di connessione impostata su "false", il driver accetterà solo il formato dei valori letterali stringa predefinito per ogni tipo di dati temporali, ad esempio: DATE: YYYY-MM-DD DATETIME: YYYY-MM-DD hh:mm:ss[.nnn] DATETIME2: YYYY-MM-DD hh:mm:ss[.nnnnnnn] DATETIMEOFFSET: YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+/-}hh:mm] SMALLDATETIME: YYYY-MM-DD hh:mm:ss TIME: hh:mm:ss[.nnnnnnn] |
sendTimeAsDatetime boolean ["true" | "false"] true |
Questa proprietà è stata aggiunta in JDBC Driver 3.0 per SQL Server. Impostare su "true" per inviare i valori java.sql.Time al server come valori SQL Server di tipo datetime. Impostare su "false" per inviare i valori java.sql.Time al server come valori SQL Server di tipo time. Il valore predefinito di questa proprietà è attualmente "true" ma potrebbe cambiare nelle versioni future. Per altre informazioni su come Microsoft JDBC Driver per SQL Server configura i valori java.sql.Time prima di inviarli al server, vedere Configurazione della modalità di invio dei valori java.sql.Time al server. |
serverCertificate, server String Null |
(Versione 11.2.0+) Percorso del file del certificato del server. Usata per la convalida quando si usa encrypt impostata su strict. Il driver supporta i file di certificato usando il formato di file PEM. |
serverName, server String Null |
Computer che esegue SQL Server o un database SQL di Azure. È anche possibile specificare il nome di rete virtuale di un gruppo di disponibilità. Per altre informazioni sul ripristino di emergenza, vedere Supporto del driver JDBC per disponibilità elevata e ripristino di emergenza. |
serverNameAsACE boolean ["true" | "false"] false |
(Versione 6.0+) Impostare su "true" per indicare che il driver deve convertire il nome del server Unicode nella codifica compatibile ASCII (Punycode) per la connessione. Se questa impostazione è "false", il driver si connette usando il nome del server specificato dall'utente. Per altre informazioni sulle funzionalità internazionali, vedere Funzionalità internazionali del driver JDBC. |
serverPreparedStatement... DiscardThreshold Intero 10 |
(Versione 6.2+) Questa proprietà può essere usata per controllare il numero di azioni di annullamento di istruzioni preparate (sp_unprepare ) in sospeso per ogni connessione prima che venga eseguita una chiamata per pulire gli handle in sospeso nel server. Se la proprietà è impostata su <= 1 , le azioni di annullamento della preparazione vengono eseguite immediatamente alla chiusura dell'istruzione preparata. Se la proprietà è impostata su > 1 , le chiamate vengono raggruppate in batch per evitare il sovraccarico dovuto a chiamate troppo frequenti di sp_unprepare . |
serverSpn String Null |
(Versione 4.2+) Questa proprietà facoltativa può essere usata per specificare il nome dell'entità servizio (SPN) per una connessione Java Kerberos. Viene usata con authenticationScheme. Per specificare il nome dell’entità servizio, si può usare il formato: "MSSQLSvc/fqdn:port@REALM" dove fqdn è il nome di dominio completo, port è il numero di porta e REALM è l'area di autenticazione Kerberos di SQL Server in lettere maiuscole. Nota: @REALM è facoltativo se l'area di autenticazione predefinita del client (come specificato nella configurazione di Kerberos) corrisponde all'area di autenticazione Kerberos per SQL Server. Per altre informazioni sull'uso della proprietà serverSpn con Java Kerberos, vedere Uso dell'autenticazione integrata Kerberos per la connessione a SQL Server. |
socketFactoryClass String Null |
(Versione 8.4+) Specifica il nome della classe di una factory di socket personalizzata da usare al posto della factory di socket predefinita. |
socketTimeout int 0 |
Numero di millisecondi di attesa prima che si verifichi un timeout per un'operazione di lettura o accettazione del socket. Il valore predefinito è 0 che indica un timeout infinito. |
statementPooling... CacheSize int 0 |
(Versione 6.4+) Questa proprietà può essere usata per abilitare la memorizzazione nella cache dell'handle di istruzione preparata nel driver. Questa proprietà definisce la dimensione della cache per il pooling dell'istruzione. Può essere usata solo con la proprietà di connessione disableStatementPooling, che deve essere impostata su "false". L'impostazione di disableStatementPooling su "true" o di statementPoolingCacheSize su 0 disabilita la memorizzazione nella cache dell'handle dell'istruzione preparata. |
sslProtocol String TLS |
(Versione 6.4+) Questa proprietà può essere usata per specificare il protocollo TLS da considerare durante la connessione protetta. I valori possibili sono: TLS, TLSv1, TLSv1.1 e TLSv1.2. Per altre informazioni sul protocollo Secure Sockets Layer, vedere SSLProtocol. |
transparentNetwork... IPResolution boolean ["true" | "false"] true |
(Versione 6.0+) Questa proprietà offre una maggiore velocità per il rilevamento del server (attualmente) attivo e la connessione allo stesso. I valori possibili sono "true" e "false" e "true" è il valore predefinito. Nelle versioni precedenti a Microsoft JDBC Driver 6.0 per SQL Server, in un'applicazione è necessario impostare la stringa di connessione in modo da includere "multiSubnetFailover=true" per indicare che è in corso la connessione a un gruppo di disponibilità Always On. Senza l'impostazione della parola chiave di connessione multiSubnetFailover su "true", l'applicazione può riscontrare un timeout durante la connessione a un gruppo di disponibilità Always On. Con la versione 6.0 e successive, per un'applicazione non è più necessario impostare multiSubnetFailover su true. Nota: Se transparentNetworkIPResolution=true, il primo tentativo di connessione usa 500 ms come valore di timeout. Tutti i tentativi successivi usano la stessa logica di timeout usata dalla proprietà multiSubnetFailover. |
trustManagerClass String Null |
(Versione 6.4+) Nome completo della classe di un'implementazione di javax.net.ssl.TrustManager personalizzata. |
trustManager... ConstructorArg String Null |
(Version 6.4+) Argomento facoltativo da passare al costruttore di TrustManager. Se la proprietà trustManagerClass è specificata ed è richiesta una connessione crittografata, l'oggetto TrustManager personalizzato viene usato al posto dell'oggetto TrustManager basato sull'archivio chiavi JVM di sistema predefinito. |
trustServerCertificate boolean ["true" | "false"] false |
Impostare questa proprietà su "true" per specificare che il driver non convalida il certificato TLS/SSL del server. Se il valore è "true" e il livello di comunicazione è crittografato tramite TLS, il certificato TLS/SSL del server viene automaticamente considerato attendibile. Se il valore è "false", il certificato convalida il certificato TLS/SSL del server. Se la convalida del certificato del server ha esito negativo, il driver genera un errore e chiude la connessione. Il valore predefinito è "false". Perché una connessione TLS/SSL riesca, assicurarsi che il valore passato a serverName corrisponda esattamente al nome comune (CN) o al nome DNS nel nome soggetto alternativo nel certificato del server. Per altre informazioni sul supporto della crittografia, vedere Informazioni sul supporto della crittografia. Nota: Questa proprietà viene usata in combinazione con le proprietà encrypt/authentication. Questa proprietà influisce sulla convalida del certificato TLS/SSL del server solo se la connessione usa la crittografia TLS. |
trustStore String Null |
Percorso (incluso il nome file) del file trustStore del certificato. Il file trustStore contiene l'elenco di certificati considerati attendibili dal client. Quando la proprietà non è specificata o è impostata su Null, per determinare l'archivio certificati da usare il driver si basa sulle regole di ricerca della factory del gestore di attendibilità. L'istanza predefinita di SunX509 TrustManagerFactory esegue un tentativo di individuare il materiale attendibile in base all'ordine di ricerca seguente: File specificato dalla proprietà di sistema JVM "javax.net.ssl.trustStore". File <java-home>/lib/security/jssecacerts .File <java-home>/lib/security/cacerts .Per altre informazioni sull'interfaccia di SUNX509 TrustManager, vedere la documentazione relativa all'interfaccia di SUNX509 TrustManager nel sito Web di Sun Microsystems. Nota: questa proprietà influisce solo sulla ricerca del file trustStore del certificato se la connessione usa la crittografia TLS e la proprietà trustServerCertificate è impostata su "false". |
trustStorePassword String Null |
Password utilizzata per verificare l'integrità dei dati del file trustStore. Se è impostata la proprietà trustStore e non la proprietà trustStorePassword, l'integrità del file trustStore non viene verificata. Se nessuna delle proprietà trustStore e trustStorePassword è specificata, il driver usa le proprietà di sistema JVM "javax.net.ssl.trustStore" e "javax.net.ssl.trustStorePassword". Se la proprietà di sistema "javax.net.ssl.trustStorePassword" non è specificata, l'integrità del file trustStore non viene verificata. Se l'utente non imposta la proprietà trustStore ma imposta la proprietà trustStorePassword, il driver JDBC usa il file specificato da "javax.net.ssl.trustStore". Inoltre, il driver controlla l'integrità dell'archivio attendibilità usando il trustStorePassword specificato. Questa impostazione è necessaria quando non si vuole che l'applicazione client archivi la password nella proprietà di sistema JVM. Nota: la proprietà trustStorePassword influisce sulla ricerca del file trustStore del certificato solo se la connessione usa la connessione TLS e la proprietà trustServerCertificate è impostata su "false". |
trustStoreType String JKS |
Impostare questa proprietà per specificare il tipo di archivio attendibilità da usare per la modalità FIPS. I valori possibili sono PKCS12 o il tipo definito dal provider FIPS. |
useBulkCopyFor... BatchInsert boolean ["true" | "false"] false |
(Versione 9.2+) Questa proprietà di connessione può essere abilitata per usare in modo trasparente l'API Copia bulk durante l'esecuzione di operazioni di inserimento batch tramite java.sql.PreparedStatement . Questa funzionalità offre potenzialmente prestazioni più elevate quando è abilitata. Questo funzionalità è disabilitata per impostazione predefinita. Impostare la proprietà su "true" per abilitare la funzionalità. Nota importante: questa funzionalità supporta solo query INSERT con parametri completi. Se le query INSERT sono combinate con altre query SQL o contengono dati nei valori, viene eseguito il fallback sull'operazione di inserimento batch di base. Per altre informazioni su come usare questa proprietà, vedere Uso dell'API Copia bulk per un'operazione di inserimento batch |
useDefaultGSSCredential boolean ["true" | "false"] false |
(Versione 12.6 e successive) Flag per indicare se il driver deve creare GSSCredential per conto dell'utente per utilizzare la GSS-API nativa per l'autenticazione Kerberos. |
useDefaultJaasConfig boolean ["true" | "false"] false |
(Versione 12.6 e successive) Quando l'applicazione esiste insieme alle librerie che configurano JAAS a livello di sistema, l'impostazione di questa proprietà su true consente al driver di usare la stessa configurazione per eseguire l'autenticazione Kerberos. |
useFmtOnly boolean ["true" | "false"] false |
(Versione 7.4+) Fornisce un modo alternativo per eseguire query sui metadati dei parametri dal server. Impostare questa proprietà su "true" per specificare che il driver deve usare la logica SET FMTONLY quando si eseguono query sui metadati dei parametri. Questa funzionalità è disattivata per impostazione predefinita e non è consigliabile usare questa proprietà perché SET FMTONLY è contrassegnata per essere deprecata. La proprietà useFmtOnly viene resa disponibile per l'uso solo come soluzione alternativa per problemi noti e limitazioni in sp_describe_undeclared_parameters .Questa funzionalità attualmente supporta solo query SELECT/INSERT/UPDATE/DELETE singole. Se si tenta di usare questa funzionalità con più query o query non supportate, il driver tenterà di analizzare le query, ma è molto probabile che venga generata un'eccezione.Per altre informazioni su questa query, vedere Recupero di ParameterMetaData tramite useFmtOnly. |
userName, utente String [<=128 caratteri] Null |
Utente del database, in caso di connessione con utente e password SQL. Per la connessione Kerberos con nome e password dell'entità servizio, questa proprietà è impostata come nome dell'entità servizio di Kerberos. (Versione 10.2+) Quando authentication=ActiveDirectoryServicePrincipal, la proprietà userName specifica un ID client sicuro di Azure Active Directory valido. |
workstationID String [<=128 caratteri] <empty string> |
ID della workstation. Usata per identificare una workstation specifica in diversi strumenti di registrazione e profilatura. Se non specificato, viene usato <empty string> . |
xopenStates boolean ["true" | "false"] false |
Impostare la proprietà su "true" per specificare che il driver restituisce codici di stato conformi a XOPEN nelle eccezioni. L'impostazione predefinita prevede la restituzione di codici di stato SQL 99. |
Nota
Microsoft JDBC Driver per SQL Server accetta i valori predefiniti del server per le proprietà di connessione, ad eccezione di ANSI_DEFAULTS e IMPLICIT_TRANSACTIONS. Microsoft JDBC Driver per SQL Server imposta automaticamente ANSI_DEFAULTS su ON e IMPLICIT_TRANSACTIONS su OFF.
Importante
Se l'autenticazione è impostata su ActiveDirectoryPassword, è necessario includere nel classpath la libreria microsoft-authentication-library-for-java, disponibile nel repository Maven. Il modo più semplice per scaricare la libreria e le relative dipendenze consiste nell'usare Maven:
- Installare Maven nel sistema
- Passare alla pagina GitHub del driver
- Scaricare il file pom.xml
- Per scaricare la libreria e le relative dipendenze, eseguire il comando Maven seguente:
mvn dependency:copy-dependencies