Partilhar via


Definindo as propriedades da conexão

Baixar driver JDBC

As propriedades da cadeia de conexão podem ser especificadas de várias maneiras:

  • As propriedades name=value na URL de conexão quando você se conecta usando a classe DriverManager. Para obter a sintaxe da cadeia de conexão, consulte Criando a URL de conexão.

  • As propriedades name=value no parâmetro Properties do método Connect na classe DriverManager.

  • Como valores no método setter apropriado da fonte de dados do driver. Por exemplo:

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

Comentários

Os nomes de propriedade não diferenciam maiúsculas de minúsculas e os nomes de propriedade duplicados são resolvidos na seguinte ordem:

  1. Argumentos da API (como usuário e senha)
  2. Coleção de imóveis
  3. Última instância na cadeia de conexão

Os valores desconhecidos são permitidos para os nomes de propriedade, e o driver JDBC não verifica a sensibilidade a maiúsculas e minúsculas.

Os sinónimos são permitidos e são resolvidos em ordem, tal como os nomes de propriedade duplicados.

Propriedades

A tabela a seguir lista todas as propriedades de cadeia de conexão atualmente disponíveis para o driver JDBC.

Propriedade
Tipo
Padrão
Descrição
accessToken

Cadeia

nulo
(Versão 6.0+) Use essa propriedade para se conectar a um banco de dados usando um token de acesso. accessToken não pode ser definido usando a URL de conexão.
accessTokenCallbackClass

Cadeia

nulo
(Versão 12.4+) O nome da classe que implementa o retorno de chamada a ser utilizada com o retorno de chamada do token de acesso.
intenção da aplicação

Cadeia

LerEscrever
(Versão 6.0+) Declara o tipo de carga de trabalho do aplicativo para se conectar a um servidor.

Os valores possíveis são ReadOnly e ReadWrite.

Para obter mais informações sobre recuperação de desastres, consulte suporte do driver JDBC para Alta Disponibilidade, recuperação de desastres.
nome_do_aplicativo

Cadeia
[<=128 caracteres]

nulo
O nome do aplicativo ou "Microsoft JDBC Driver for SQL Server" se nenhum nome for fornecido.

Usado para identificar o aplicativo específico em várias ferramentas de criação de perfil e registro em log do SQL Server.
autenticação

Cadeia

Não especificado
(Versão 6.0+) Essa propriedade opcional indica qual método de autenticação usar para conexão. Os valores possíveis são ActiveDirectoryIntegrated, ActiveDirectoryPassword, ActiveDirectoryManagedIdentity (versão 12.2+), ActiveDirectoryMSI (versão 7.2+), ActiveDirectoryInteractive (versão 9.2+), ActiveDirectoryServicePrincipal (versão 9.2+), SqlPassword, e o valor predefinido NotSpecified.

Use ActiveDirectoryIntegrated (versão 6.0+) para se conectar ao SQL usando a autenticação integrada do Windows.

Use ActiveDirectoryPassword (versão 6.0+) para se conectar ao SQL usando um nome principal e senha do Microsoft Entra.

Use ActiveDirectoryManagedIdentity (versão 12.2+) ou ActiveDirectoryMSI (versão 7.2+) para se conectar ao SQL de dentro de um Recurso do Azure. Por exemplo, uma Máquina Virtual do Azure, Serviço de Aplicativo ou Aplicativo de Função usando autenticação de identidade gerenciada.

Os dois tipos de identidades geridas suportadas pelo driver ao usar o modo de autenticação ActiveDirectoryManagedIdentity ou ActiveDirectoryMSI são:
1. System-Assigned Managed Identity: Usado para adquirir accessToken por padrão.
2. User-Assigned Managed Identity: Usado para adquirir accessToken se o ID do Cliente de uma identidade gerida for especificado com a propriedade de ligação msiClientId.

Use ActiveDirectoryInteractive para se conectar a um banco de dados usando um fluxo de autenticação interativo.

Use ActiveDirectoryServicePrincipal (versão 9.2+) para se conectar a um banco de dados usando a ID do cliente e o segredo de uma identidade da entidade de serviço. Especifique o ID do cliente na propriedade userName e o segredo na propriedade password (10.2+).

Use SqlPassword para se conectar ao SQL usando as propriedades de userName/user e password.

Use NotSpecified se nenhum desses métodos de autenticação for necessário.

Importante: Se a autenticação estiver definida como ActiveDirectoryIntegrated, as duas bibliotecas a seguir deverão ser instaladas: mssql-jdbc_auth-<versão>-<arch>.dll (disponível no pacote de driver JDBC) e Microsoft Authentication Library for SQL Server (ADAL.DLL). A Biblioteca de Autenticação da Microsoft pode ser instalada a partir do Microsoft ODBC Driver para SQL Server ou Microsoft OLE DB Driver para SQL Server. O driver JDBC suporta apenas a versão 1.0.2028.318 e superior para ADAL.DLL.

Nota: Quando a propriedade de autenticação é definida para qualquer valor diferente de NotSpecified, o driver usa por defeito a criptografia Transport Layer Security (TLS), anteriormente conhecida como Secure Sockets Layer (SSL).

Para obter informações sobre como configurar a autenticação do Microsoft Entra, consulte Usar a autenticação do Microsoft Entra.
esquema de autenticação

Cadeia

Autenticação Nativa
Indica que tipo de segurança integrada você deseja que seu aplicativo use. Os valores possíveis são JavaKerberos, NTLM (versão 7.4+) e o padrão NativeAuthentication.

NativeAuthentication faz com que o driver carregue mssql-jdbc_auth-<version>-<arch>.dll (por exemplo, mssql-jdbc_auth-8.2.2.x64.dll) no Windows, que é usado para obter informações de autenticação integradas.

(A biblioteca de autenticação nativa carregada é nomeada sqljdbc_auth.dll ao usar as versões de driver 6.0 a 7.4.)

Ao usar authenticationScheme=JavaKerberos, você deve especificar o nome de domínio totalmente qualificado (FQDN) na propriedade serverName ou serverSpn. Caso contrário, ocorrerá um erro (Servidor não encontrado no banco de dados Kerberos).

Para obter mais informações sobre como usar authenticationScheme=JavaKerberos, consulte Usando a autenticação integrada Kerberos para se conectar ao SQL Server.

Ao usar authenticationScheme=NTLM, deve especificar o domínio do Windows utilizando a propriedade domain ou a propriedade domainName, as credenciais do Windows na propriedade user ou na propriedade userName, e a propriedade password. Caso contrário, ocorrerá um erro (as propriedades de conexão devem ser especificadas).
cacheBulkCopyMetadata

Booleano
["verdadeiro" | "falso"]

falso
(Versão 12.8+) Ao usar useBulkCopyForBatchInsert=true, essa propriedade é usada para informar ao driver se ele deve armazenar em cache os metadados da coluna de destino no nível da conexão. Se definido como true, certifique-se de que o destino não muda entre inserções em massa, pois o driver não tem como lidar com essa alteração.
calcBigDecimalPrecision

Booleano
["verdadeiro" | "falso"]

falso
(Versão 12.6+) Sinalizar para indicar se o driver deve calcular a precisão para entradas BigDecimal, em vez de usar o valor máximo permitido para precisão (38).
cancelarTempoLimiteDeConsulta

Int

-1
(Versão 6.4+) Esta propriedade pode ser usada para cancelar um queryTimeout definido na conexão. A execução da consulta fica suspensa e não gera uma exceção se a conexão TCP com o servidor for silenciosamente perdida. Esta propriedade só é aplicável se 'queryTimeout' também estiver definido na conexão.

O driver aguarda o total de cancelQueryTimeout + queryTimeout segundos, para interromper a conexão e fechar o canal.

O valor padrão para essa propriedade é -1 e o comportamento é aguardar indefinidamente.
certificado do cliente

Cadeia

nulo
(Versão 8.4+) Especifica o local do certificado a ser usado para autenticação de certificado de cliente. O driver JDBC suporta extensões de arquivo PFX, PEM, DER e CER.

Para obter detalhes, consulte a autenticação do certificado de cliente para cenários de loopback .
chave do cliente

Cadeia

nulo
(Versão 8.4+) Especifica o local da chave privada para certificados PEM, DER e CER especificados pelo atributo clientCertificate.

Para obter detalhes, consulte a autenticação do certificado de cliente para cenários de loopback .
clientKeyPassword

Cadeia

nulo
(Versão 8.4+) Especifica a cadeia de caracteres de senha opcional para acessar a chave privada do arquivo clientKey.

Para obter detalhes, consulte a autenticação do certificado de cliente para cenários de loopback .
configuraçãoDeEncriptaçãoDeColuna

Cadeia
["Ativado" | "Desativado"]

Desabilitado
(Versão 6.0+) Defina como "Ativado" para usar o recurso Sempre criptografado (AE). Quando o AE está habilitado, o driver JDBC criptografa e descriptografa de forma transparente dados confidenciais armazenados em colunas de banco de dados criptografadas no servidor.

Para obter mais informações sobre Always Encrypted, consulte Usando Always Encrypted com o driver JDBC.

Observação: Always Encrypted está disponível com o SQL Server 2016 ou posterior e o Banco de Dados SQL do Azure.
connectRetryCount

Int
[0..255]

1
(Versão 9.4+) O número de tentativas de reconexão se houver uma falha de conexão.
intervaloDeTentativaDeReconexão

Int
[1..60]

10
(Versão 9.4+) O número de segundos entre cada nova tentativa de conexão.
databaseName,
Base de dados

Cadeia
[<=128 caracteres]

nulo
O nome do banco de dados ao qual se conectar.

Se não for declarado, será feita uma conexão com o banco de dados padrão.
datetimeParameterType

Cadeia
["datetime" | "datetime2" | "datetimeoffset"]

datetime2
(Versão 12.2+) O tipo de dados SQL a ser usado para parâmetros de carimbo de data/hora Java.

Quando um está se conectando ao SQL Server 2016 ou superior e interagindo com valores "datetime" herdados, os clientes podem se beneficiar da definição da propriedade como "datetime". Essa configuração atenua os problemas de conversão do lado do servidor entre os valores "datetime" e "datetime2". Para obter mais informações, consulte Abordando a alteração de comportamento na conversão de datetime para datetime2 a partir do SQL Server 2016
delayLoadingLobs

Booleano
["verdadeiro" | "falso"]

verdadeiro
Sinalizador para indicar se todos os objetos LOB que estão sendo recuperados do ResultSet devem ou não ser transmitidos. Definir essa propriedade como "false" carrega todo o objeto LOB na memória sem streaming.
nome de domínio,
domínio

Cadeia
nulo
(Versão 7.4+) O domínio do Windows para se autenticar ao utilizar a autenticação NTLM.
disableStatementPooling

Booleano
["verdadeiro" | "falso"]

verdadeiro
Sinalizador indica se o agrupamento de instruções deve ser usado.
enablePrepareOnFirst...
ChamadaPreparadaDeclaração

Booleano
["verdadeiro" | "falso"]

falso
Defina como "true" para habilitar a criação de identificador de instrução preparada chamando sp_prepexec com a primeira execução de uma instrução preparada.

Defina como "false" para que a primeira execução de uma instrução preparada chame sp_executesql e não prepare uma instrução. Se uma segunda execução acontecer, ele chama sp_prepexec para configurar um identificador de instrução preparado.
enclaveAttestationUrl

Cadeia

nulo
(Versão 8.2+) Essa propriedade opcional indica a URL do ponto de extremidade do serviço de atestado a ser usada para Always Encrypted com enclaves seguros.

Para obter mais informações sobre Always Encrypted com enclaves seguros, consulte Always Encrypted with secure enclaves.
protocoloDeAtestaçãoDeEnclave

Cadeia

nulo
(Versão 8.2+) Esta propriedade opcional indica o protocolo de atestado a ser usado para Always Encrypted com enclaves seguros. Atualmente, os únicos valores suportados para este campo são HGS, AAS e NONE (NONE só é suportado na versão 11.2+).

Para obter mais informações sobre Always Encrypted com enclaves seguros, consulte Always Encrypted with secure enclaves.
criptografar

Cadeia

nulo
Defina como "true" para especificar que o SQL Server usa criptografia TLS para todos os dados enviados entre o cliente e o servidor, se o servidor tiver um certificado instalado. O valor padrão é "true" na versão 10.2 e posterior e "false" na 9.4 e anteriores.

Na versão 6.0 e superior, há uma nova configuração de conexão 'autenticação' que usa criptografia TLS por padrão.

Para obter mais informações sobre esta propriedade, consulte a propriedade “authentication”.

Na versão 11.2.0 e superior, criptografar foi alterado de booleano para string, permitindo o suporte a TDS 8.0 quando a propriedade está definida como estrito.
Parceiro de Failover

Cadeia

nulo
O nome do servidor de failover usado numa configuração de espelhamento de base de dados. Essa propriedade é usada para uma falha de conexão inicial com o servidor principal. Depois de fazer a conexão inicial, essa propriedade é ignorada. Deve ser usado com a propriedade databaseName.

Nota: O driver não suporta o número da porta da instância do servidor para a instância do parceiro de recuperação como parte da propriedade failoverPartner na string de ligação. No entanto, o driver oferece suporte à especificação, na mesma cadeia de conexão, das propriedades serverName, instanceName e portNumber da instância do servidor principal, bem como da propriedade failoverPartner da instância do parceiro de failover.

Se você especificar um Nome de Rede Virtual na propriedade de conexão do Server, não poderá usar o espelhamento de banco de dados. Para obter mais informações sobre recuperação de desastres, consulte suporte ao driver JDBC para alta disponibilidade, recuperação de desastres
fips

Booleano
["verdadeiro" | "falso"]

"falso"
Para Java Virtual Machine (JVM) habilitado para FIPS, essa propriedade deve ser true.
fipsProvider

Cadeia

nulo
Provedor FIPS configurado na JVM. Por exemplo, BCFIPS ou SunPKCS11-NSS. Removido na versão 6.4.0. Para obter mais informações, consulte edição 460 do GitHub.
GSScredential

org.ietf.jgss.GSSCredential

nulo
(Versão 6.2+) As credenciais de usuário a serem usadas para a Delegação Restrita de Kerberos podem ser passadas nesta propriedade.

Essa configuração deve ser usada com integratedSecurity como verdadeiro e JavaKerberos como esquema de autenticação.
hostNameInCertificate

Cadeia

nulo
O nome do host a ser usado para validar o certificado TLS/SSL do SQL Server.

A opção hostNameInCertificate pode ser usada para especificar o nome do host em situações em que o nome, ou nomes, usados no certificado não correspondem ao nome fornecido à propriedade serverName. No entanto, se houver uma correspondência, a opção hostNameInCertificate não deve ser usada.

Em situações em que a propriedade hostNameInCertificate não é especificada ou está definida como null, o Microsoft JDBC Driver para SQL Server usa o valor da propriedade serverName na URL de conexão como o nome do host para validar o certificado TLS/SSL do SQL Server.

Nota: Como descrito no parágrafo anterior, não é recomendável definir a opção hostNameInCertificate, a menos que você possa confirmar que o nome, ou nomes, no certificado não correspondem aos nomes passados na opção serverName.

Nota: Esta propriedade é usada em combinação com as propriedades de encriptação/, autenticação e a propriedade trustServerCertificate. Essa propriedade afetará a validação do certificado, se a conexão usar criptografia TLS e o trustServerCertificate estiver definido como "false". Verifique se o valor passado para hostNameInCertificate corresponde ao nome comum (CN) ou ao nome DNS no Nome Alternativo do Sujeito (SAN) no certificado do servidor, para que a conexão TLS seja bem-sucedida. Para obter mais informações sobre o suporte à criptografia, consulte Noções básicas sobre o suporte à criptografia.
instanceName

Cadeia
[<=128 caracteres]

nulo
O nome da instância do banco de dados ao qual se conectar. Quando não é especificado, é feita uma conexão com a instância padrão. No caso em que tanto o instanceName quanto a port são especificados, consulte as notas sobre a port.

Se você especificar um Nome de Rede Virtual na propriedade de conexão do Server, não poderá usar a propriedade de conexão instanceName. Para obter mais informações sobre recuperação de desastres, consulte Suporte ao driver JDBC para alta disponibilidade, recuperação de desastres.
Segurança integrada

Booleano
["verdadeiro" | "falso"]

falso
Defina como "true" para indicar que as credenciais do Windows são usadas pelo SQL Server em sistemas operacionais Windows. Se "true", o driver JDBC pesquisa no cache de credenciais do computador local as credenciais que foram fornecidas quando um usuário entrou no computador ou na rede.

Defina como "true" (com authenticationscheme=JavaKerberos), para indicar que as credenciais Kerberos são usadas pelo SQL Server. Para obter mais informações sobre a autenticação Kerberos, consulte Usando a autenticação integrada Kerberos para se conectar ao SQL Server.

Defina como "true" (com authenticationscheme=NTLM), para indicar que as credenciais NTLM são usadas pelo SQL Server.

Se "false", o nome de utilizador e a palavra-passe devem ser fornecidos.
preferência de endereço IP

Cadeia
[<=128 caracteres]

IPv4Primeiro
A preferência de IP usada pelo aplicativo cliente.

Com IPV4First, o driver percorre endereços IPv4 primeiro. Se nenhum endereço IPv4 puder ser conectado com êxito, o driver continuará e tentará endereços IPv6, se houver.

Com IPV6First, o driver percorre endereços IPv6 primeiro. Se nenhum endereço IPv6 puder ser conectado com êxito, o driver continuará e tentará endereços IPv4, se houver.

Com UsePlatformDefault, o driver atravessa todos os endereços IP na sua ordem inicial a partir da resolução de DNS.
jaasConfigurationName

Cadeia

SQLJDBCDriver
(Versão 6.2+) Cada conexão com o SQL Server pode usar seu próprio nome de Configuração de Logon JAAS para estabelecer uma conexão Kerberos. O nome da entrada de configuração pode ser passado por essa propriedade. Esta propriedade destina-se a ser usada ao criar um arquivo de configuração Kerberos . Por padrão, o driver procura o nome SQLJDBCDriver.

Se uma configuração externa não for encontrada, o driver definirá useDefaultCcache = true para IBM JVMs e useTicketCache = true para outras JVMs.
keyStoreAuthentication

Cadeia

nulo
(Versão 6.0+) Essa propriedade identifica qual armazenamento de chaves usar com Always Encrypted e determina um mecanismo de autenticação usado para autenticar no armazenamento de chaves. O driver suporta a configuração do Java Key Store perfeitamente quando você define "keyStoreAuthentication=JavaKeyStorePassword". Para usar esta propriedade, deverá também definir as propriedades keyStoreLocation e keyStoreSecret para o Java Key Store.

Para obter mais informações sobre Always Encrypted, consulte Usando Always Encrypted com o driver JDBC.

A partir do Microsoft JDBC Driver 8.4, você pode definir "keyStoreAuthentication=KeyVaultManagedIdentity" ou "keyStoreAuthentication=KeyVaultClientSecret" para autenticar no Cofre da Chave do Azure usando Identidades Gerenciadas.

Para obter mais informações sobre Always Encrypted, consulte Usando Always Encrypted com o driver JDBC.
localização do armazém de chaves

Cadeia

nulo
(Versão 6.0+) Quando keyStoreAuthentication=JavaKeyStorePassword, a propriedade keyStoreLocation identifica o caminho para o ficheiro keystore Java que armazena a Chave Mestra de Coluna a ser usada com dados Sempre Encriptados. O caminho deve incluir o nome do arquivo keystore.

Para obter mais informações sobre Always Encrypted, consulte Usando Always Encrypted com o driver JDBC.
keyStorePrincipalId

Cadeia

nulo
(Versão 8.4+) Quando keyStoreAuthentication=KeyVaultManagedIdentity, a propriedade keyStorePrincipalId especifica um ID de cliente de aplicação Microsoft Entra válido.

Para obter mais informações sobre Always Encrypted, consulte Usando Always Encrypted com o driver JDBC.
keyStoreSecret

Cadeia

nulo
(Versão 6.0+) Quando keyStoreAuthentication=JavaKeyStorePassword, a propriedade keyStoreSecret identifica a senha a ser usada para o keystore e a chave. Quando se está usando o Java Key Store, o keystore e a senha da chave devem ser os mesmos.

Para obter mais informações sobre Always Encrypted, consulte Usando Always Encrypted com o driver JDBC.
contadorDeUltimaAtualização

Booleano
["verdadeiro" | "falso"]

verdadeiro
Um valor "true" retorna apenas a última contagem de atualização de uma instrução SQL que é passada para o servidor. Além disso, é usado apenas em instruções SELECT, INSERT ou DELETE para ignorar outras contagens de atualização que possam ser causadas por gatilhos de servidor. Definir essa propriedade como "false" faz com que todas as contagens de atualização sejam retornadas, incluindo essas contagens de atualização retornadas por gatilhos de servidor.

Nota: Esta propriedade só se aplica quando é usada com os métodos executeUpdate. Todos os outros métodos de execução retornam todos os resultados e contagens de atualizações. Essa propriedade afeta apenas as contagens de atualização retornadas pelos gatilhos do servidor. Ele não afeta conjuntos de resultados ou erros que resultam como parte da execução do gatilho.
lockTimeout

Int

-1
O número de milissegundos a aguardar antes que o banco de dados informe um tempo limite de bloqueio. O comportamento padrão é aguardar indefinidamente. Se o usuário não tiver especificado um valor para essa propriedade, esse valor será o padrão para todas as instruções na conexão.

Como alternativa, Statement.setQueryTimeout() pode ser usado para definir o tempo limite de consulta para instruções específicas. O valor pode ser 0, o que especifica não esperar.
tempo de espera de login

Int
[0..65535]

30 (versão 11.2 e superior)
15 (versão 10.2 e inferior)
O número de segundos que o driver deve esperar antes de cronometrar uma conexão com falha. Um valor zero indica que o tempo limite é o tempo limite padrão do sistema. Esse valor é de 30 segundos (o padrão na versão 11.2 e superior) ou 15 segundos (o padrão na versão 10.2 e inferior). Um valor não nulo é o número de segundos que o driver deve aguardar antes de atingir o tempo limite de uma conexão com falha.

Se você especificar um Nome de Rede Virtual na propriedade de conexão do Server, deverá especificar um valor de tempo limite de três minutos ou mais para permitir tempo suficiente para que uma conexão de failover seja bem-sucedida. Para obter mais informações sobre recuperação de desastres, consulte suporte do driver JDBC para Alta Disponibilidade, recuperação de desastres.
maxResultBuffer

Cadeia

nulo
(Versão 9.2+) maxResultBuffer pode ser usado para definir o máximo de bytes a serem lidos ao ler um conjunto de resultados. Se não for especificado, todo o conjunto de resultados será lido. O tamanho pode ser especificado em dois estilos:
1. como tamanho de bytes (por exemplo, 100, 150M, 300K, 400G)
2. como uma porcentagem da memória de pilha máxima (por exemplo, 10p, 15pct, 20percent).
msiClientId

Cadeia

nulo
(Preterido) (Versão 7.2+) O ID do cliente da Identidade Gerenciada (MSI) usado para adquirir um accessToken para estabelecer uma conexão com o modo de autenticação ActiveDirectoryManagedIdentity ou ActiveDirectoryMSI.
multiSubnetFailover

Booleano

falso
Sempre especifique multiSubnetFailover=true para se conectar ao listener de um grupo de disponibilidade do SQL Server ou a uma Instância de Cluster de Failover do SQL Server. multiSubnetFailover=true configura o driver para detetar e ligar-se mais rapidamente ao servidor que está (atualmente) ativo. Os valores possíveis são verdadeiro e falso. Para obter mais informações sobre recuperação de desastres, consulte Suporte ao driver JDBC para alta disponibilidade, recuperação de desastres.

Você pode acessar programaticamente a propriedade de conexão multiSubnetFailover com getPropertyInfo, getMultiSubnetFailovere setMultiSubnetFailover.

Nota: A partir do Microsoft JDBC Driver 6.0 para SQL Server, não é mais necessário definir multiSubnetFailover como "true" para se conectar a um ouvinte do grupo de disponibilidade. Uma nova propriedade, transparentNetworkIPResolution, que está habilitada por padrão, fornece a deteção e conexão com o servidor (atualmente) ativo.
tamanhoDoPacote

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

8000
O tamanho do pacote de rede usado para se comunicar com o servidor, especificado em bytes. Um valor de -1 indica usar o tamanho de pacote padrão do servidor. Um valor de 0 indica usar o valor máximo de 32767. Se essa propriedade for definida como um valor fora do intervalo aceitável, ocorrerá uma exceção.

Importante: O uso da propriedade packetSize quando a criptografia está habilitada (encrypt=true) não é recomendado. Caso contrário, o driver pode gerar um erro de conexão. Para obter mais informações sobre essa propriedade, consulte o método setPacketSize da classe SQLServerDataSource.
palavra-passe

Cadeia
[<=128 caracteres]

nulo
A senha do banco de dados é necessária, se houver conexão com usuário SQL e senha.
Para conexão Kerberos com nome principal e senha, essa propriedade é definida como a senha Kerberos Principal.

(Versão 10.2+) Quando authentication=ActiveDirectoryServicePrincipal, a propriedade password identifica a senha a ser usada para o principal do Active Directory.
número de porta
porto

Int
[0..65535]

1433
A porta onde o servidor está escutando. Se o número da porta for especificado na cadeia de conexão, nenhuma solicitação ao SQLbrowser será feita. Quando a porta e instanceName são especificadas, a conexão é feita com a porta especificada. No entanto, o instanceName é validado e um erro é gerado se não corresponder à porta.

Importante: Recomendamos que o número da porta seja sempre especificado, pois é mais seguro do que usar SQLbrowser.
prepararMétodo

Cadeia
["prepexec" | "preparar"]

Prepexec
(Versão 11.2.0+) Especifica o método subjacente de preparação a ser usado pelo driver com instruções preparadas.

Configure para preparar para usar sp_prepare como método de preparação. A definição de prepareMethod para esse valor resulta em uma viagem inicial separada ao banco de dados para preparar a instrução sem quaisquer valores iniciais para o banco de dados considerar no plano de execução. Defina prepexec para usar sp_prepexec como o método prepare. Este método combina a ação de preparação com a primeira execução, reduzindo viagens de ida e volta. Ele também fornece ao banco de dados valores de parâmetros iniciais que o banco de dados pode considerar no plano de execução.
queryTimeout

Int

-1
O número de segundos a aguardar antes que um tempo limite ocorra numa consulta. O valor padrão é -1, o que significa tempo limite infinito. Definir esse valor como 0 também implica aguardar indefinidamente.
reino

Cadeia

nulo
(Versão 9.4+) O domínio para autenticação Kerberos. Defina este valor para substituir o domínio de autenticação Kerberos que o driver deteta automaticamente do domínio do servidor.
replicação

Booleano
["verdadeiro" | "falso"]

falso
(Versão 9.4+) Essa configuração informa ao servidor se a conexão é usada para replicação. Quando ativado, os gatilhos com a opção NOT FOR REPLICATION não são acionados na conexão.
bufferização de resposta

Cadeia
["completo" | "adaptativo"]

adaptativo
Se essa propriedade estiver definida como "adaptativa", os dados mínimos possíveis serão armazenados em buffer quando necessário. O modo padrão é "adaptativo".

Se essa propriedade estiver definida como "full", todo o conjunto de resultados será lido do servidor quando uma instrução for executada.

Nota: Após a versão 1.2 do driver JDBC, o comportamento padrão de buffer é "adaptativo". Se você quiser manter o comportamento padrão da versão 1.2 em seu aplicativo, defina a propriedade responseBuffering como "full" nas propriedades de conexão ou use o método setResponseBuffering do objeto SQLServerStatement .
selecionarMétodo

Cadeia
["direto" | "cursor"]

direto
Se essa propriedade estiver definida como "cursor", um cursor de banco de dados será criado para cada consulta criada na conexão para TYPE_FORWARD_ONLY e CONCUR_READ_ONLY cursores. Essa propriedade normalmente é necessária somente se o aplicativo gerar grandes conjuntos de resultados que não podem ser totalmente contidos na memória do cliente. Se essa propriedade estiver definida como "cursor", apenas um número limitado de linhas do conjunto de resultados será mantido na memória do cliente.

O comportamento padrão é que todas as linhas do conjunto de resultados são mantidas na memória do cliente. Esse comportamento fornece o desempenho mais rápido quando o aplicativo está processando todas as linhas.
sendStringParameters...
AsUnicode

Booleano
["verdadeiro" | "falso"]

verdadeiro
Se a propriedade sendStringParametersAsUnicode estiver definida como "true", os parâmetros String serão enviados para o servidor no formato Unicode.

Se a propriedade sendStringParametersAsUnicode estiver definida como "false", os parâmetros String serão enviados para o servidor em formato não-Unicode, como ASCII/MBCS, em vez de Unicode.

O valor padrão para a propriedade sendStringParametersAsUnicode é "true".

Nota: A propriedade sendStringParametersAsUnicode só é verificada para enviar um valor de parâmetro com CHAR,VARCHAR,ou tipos JDBC LONGVARCHAR. Os novos métodos de caracteres nacionais JDBC 4.0 incluem métodos como setNString, setNCharacterStream e setNClob das classes SQLServerPreparedStatement e SQLServerCallableStatement. Esses métodos sempre enviam seus valores de parâmetro para o servidor em Unicode, independentemente da configuração dessa propriedade.

Para obter um desempenho ideal com os tipos de dados CHAR, VARCHARe LONGVARCHAR JDBC, um aplicativo deve definir a propriedade sendStringParametersAsUnicode como "false" e usar os métodos de caracteres não nacionais setString, setCharacterStream e setClob das classes SQLServerPreparedStatement e classes de SQLServerCallableStatement.

Quando o aplicativo define a propriedade sendStringParametersAsUnicode como "false" e usa um método de caracteres não nacionais para acessar tipos de dados Unicode no lado do servidor (como nchar, nvarchar e ntext), alguns dados podem ser perdidos se o agrupamento do banco de dados não suportar os caracteres nos parâmetros String passados pelo método de caracteres não nacionais.

Um aplicativo deve usar os métodos de caracteres nacionais setNString, setNCharacterStream e setNClob dos SQLServerPreparedStatement e classes de SQLServerCallableStatement para os tipos de dados NCHAR, NVARCHARe LONGNVARCHAR JDBC.

A alteração desse valor pode afetar a classificação dos resultados do banco de dados. As diferenças de classificação são devidas a diferentes regras de classificação para caracteres Unicode versus não-Unicode.
sendTemporalDataTypes...
ComoStringParaCópiaEmMassa

Booleano
["verdadeiro" | "falso"]

verdadeiro
(Versão 8.4+) Esta propriedade de conexão, quando definida como "false", envia DATE, DATETIME, DATIMETIME2, DATETIMEOFFSET, SMALLDATETIMEe TIME tipos de dados como seus respetivos tipos em vez de enviá-los como String.

Com esta propriedade de conexão definida como "false", o driver aceita o formato literal padrão de string de cada tipo de dado temporal, por exemplo:

DATA: 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
HORÁRIO: hh:mm:ss[.nnnnnnn]
sendTimeAsDatetime

Booleano
["verdadeiro" | "falso"]

verdadeiro
Esta propriedade foi adicionada no SQL Server JDBC Driver 3.0.

Defina como "true" para enviar valores java.sql.Time para o servidor como valores de de data/hora do SQL Server .
Defina como "false" para enviar valores java.sql.Time para o servidor como valores de tempo do SQL Server.

O valor padrão para essa propriedade é atualmente "true" e pode mudar em uma versão futura.

Para obter mais informações sobre como o Microsoft JDBC Driver para SQL Server configura valores java.sql.Time antes de enviá-los ao servidor, consulte Configurando como os valores java.sql.Time são enviados ao servidor.
certificado do servidor
servidor

Cadeia

nulo
(Versão 11.2.0+) O caminho para o arquivo de certificado do servidor. Usado para validação ao usar criptografar definido como estrito . O driver suporta arquivos de certificado usando o formato de arquivo PEM.
Nome do servidor,
servidor

Cadeia

nulo
O computador que executa o SQL Server ou um banco de dados SQL do Azure.

Você também pode especificar o Nome da Rede Virtual de um grupo de disponibilidade. Para obter mais informações sobre recuperação de desastres, consulte suporte do driver JDBC para Alta Disponibilidade, recuperação de desastres.
serverNameAsACE

Booleano
["verdadeiro" | "falso"]

falso
(Versão 6.0+) Defina como "true" para indicar que o driver deve traduzir o nome do servidor Unicode para codificação compatível com ASCII (Punycode) para a conexão. Se essa configuração for falsa, o driver usará o nome do servidor conforme fornecido para se conectar.

Para obter mais informações sobre recursos internacionais, consulte Recursos internacionais do driver JDBC.
serverPreparedStatement...
LimiteDescartar

Inteiro

10
(Versão 6.2+) Essa propriedade pode ser usada para controlar quantas ações pendentes de descarte de instrução preparadas (sp_unprepare) podem estar pendentes por conexão antes que uma chamada para limpar as alças pendentes no servidor seja executada.

Se essa propriedade estiver definida como <= 1, as ações de despreparação serão executadas imediatamente no fecho da declaração preparada. Se a propriedade estiver definida como > 1, essas chamadas serão agrupadas para evitar a sobrecarga associada a chamadas sp_unprepare com muita frequência.
serverSpn

Cadeia

nulo
(Versão 4.2+) Essa propriedade opcional pode ser usada para especificar o SPN (Nome da Entidade de Serviço) para uma conexão Java Kerberos. É usado com o esquema de autenticação .

Para especificar o SPN, ele pode ser na forma de: "MSSQLSvc/fqdn:port@REALM", onde fqdn é o nome de domínio totalmente qualificado, port é o número da porta e REALM é o realm Kerberos do SQL Server em letras maiúsculas.

Nota: o @REALM é opcional se o realm padrão do cliente (conforme especificado na configuração Kerberos) for o mesmo que o realm Kerberos para o SQL Server.

Para obter mais informações sobre como usar serverSpn com o Java Kerberos, consulte Usando a autenticação integrada Kerberos para se conectar ao SQL Server.
socketFactoryClasse

Cadeia

nulo
(Versão 8.4+) Especifica o nome da classe para uma fábrica de soquete personalizada a ser usada em vez da fábrica de soquete padrão.
socketTimeout

Int

0
O número de milissegundos a aguardar antes de ocorrer um tempo limite em um soquete lido ou aceito. O valor padrão é 0, o que significa tempo limite infinito.
agregaçãoDeDeclarações
Tamanho da Cache

Int

0
(Versão 6.4+) Essa propriedade pode ser usada para habilitar o cache do identificador de instrução preparado no driver.

Esta propriedade define o tamanho do cache para agrupamento de instruções.

Esta propriedade só pode ser utilizada com a propriedade de ligação disableStatementPooling, que deve ser definida como "false". Definir disableStatementPooling como "true" ou statementPoolingCacheSize como 0 desabilita o cache de identificador de instrução preparado.
sslProtocolo

Cadeia

TLS
(Versão 6.4+) Essa propriedade pode ser usada para especificar o protocolo TLS a ser considerado durante a conexão segura.
Os valores possíveis são: TLS, TLSv1, TLSv1.1e TLSv1.2.

Para obter mais informações sobre o protocolo Secure Sockets Layer, consulte SSLProtocol.
transparenteRede...
IPResolution

Booleano
["verdadeiro" | "falso"]

verdadeiro
(Versão 6.0+) Essa propriedade fornece deteção e conexão mais rápidas com o servidor (atualmente) ativo. Os valores possíveis são "true" e "false", onde "true" é o valor padrão.

Antes do Microsoft JDBC Driver 6.0 para SQL Server, um aplicativo tinha que definir a cadeia de conexão para incluir "multiSubnetFailover=true" para indicar que estava se conectando a um Grupo de Disponibilidade Always On. Sem definir a palavra-chave conexão multiSubnetFailover como "true", uma aplicação poderá sofrer um tempo limite ao se conectar a um Grupo de Disponibilidade Always On. Com a versão 6.0 e superior, um aplicativo não é mais necessário para definir multiSubnetFailover como true.

Nota: Quando transparentNetworkIPResolution=true, a primeira tentativa de conexão usa 500 ms como tempo limite. Quaisquer tentativas posteriores usam a mesma lógica de tempo limite usada pela propriedade multiSubnetFailover.
trustManagerClasse

Cadeia

nulo
(Versão 6.4+) O nome de classe totalmente qualificado de uma implementação de javax.net.ssl.TrustManager personalizada.
gestorDeConfiança...
ConstructorArg

Cadeia

nulo
(Versão 6.4+) Um argumento opcional para passar para o construtor do TrustManager. Se a propriedade trustManagerClass for especificada e uma conexão criptografada for solicitada, o TrustManager personalizado será usado em vez do TrustManager baseado em keystore JVM do sistema padrão.
trustServerCertificate

Booleano
["verdadeiro" | "falso"]

falso
Defina como "true" para especificar que o driver não valida o certificado TLS/SSL do servidor.

Se "true", o certificado TLS/SSL do servidor é automaticamente confiável quando a camada de comunicação é criptografada usando TLS.

Se "false", o driver valida o certificado TLS/SSL do servidor. Se a validação do certificado do servidor falhar, o driver gerará um erro e fechará a conexão. O valor padrão é "false". Verifique se o valor passado para serverName corresponde exatamente ao Nome Comum (CN) ou ao nome DNS no Nome Alternativo da Entidade no certificado do servidor para que uma conexão TLS/SSL seja bem-sucedida. Para obter mais informações sobre o suporte à criptografia, consulte Noções básicas sobre o suporte à criptografia.

Nota: Esta propriedade é usada em combinação com as propriedades de encriptação/autenticação. Essa propriedade só afeta a validação do certificado TLS/SSL do servidor se a conexão usar criptografia TLS.
Repositório de confiança

Cadeia

nulo
O caminho (incluindo o nome do arquivo) para o arquivo trustStore do certificado. O arquivo trustStore contém a lista de certificados em que o cliente confia.

Quando essa propriedade não é especificada ou é definida como null, o driver depende das regras de pesquisa da fábrica do gerenciador de confiança para determinar qual armazenamento de certificados usar.

O padrão SunX509 TrustManagerFactory tenta localizar o material confiável na seguinte ordem de pesquisa:

Um arquivo especificado pela propriedade do sistema JVM "javax.net.ssl.trustStore".

<java-home>/lib/security/jssecacerts arquivo.

<java-home>/lib/security/cacerts arquivo.



Para obter mais informações sobre o SUNX509 TrustManager Interface, consulte a documentação do SUNX509 TrustManager Interface no site da Sun Microsystems.

Nota: Esta propriedade só afeta a pesquisa de certificado trustStore, se a conexão usa criptografia TLS e a propriedade trustServerCertificate está definida como "false".
trustStorePassword

Cadeia

nulo
A senha usada para verificar a integridade dos dados trustStore.

Se a propriedade trustStore estiver definida, mas a propriedade trustStorePassword não estiver definida, a integridade da trustStore não será verificada.

Quando as propriedades trustStore e trustStorePassword não são especificadas, o driver usa as propriedades do sistema JVM, "javax.net.ssl.trustStore" e "javax.net.ssl.trustStorePassword". Se a propriedade do sistema "javax.net.ssl.trustStorePassword" não for especificada, a integridade do trustStore não será verificada.

Se o utilizador não definir a propriedade trustStore, mas definir a propriedade trustStorePassword, o driver JDBC usará o ficheiro que o "javax.net.ssl.trustStore" especifica como um armazenamento de confiança. Além disso, o driver verifica a integridade do repositório de confiança usando a trustStorePassword especificada. Essa configuração é necessária quando o aplicativo cliente não deseja armazenar a senha na propriedade do sistema JVM.

Nota: A propriedade trustStorePassword só afetará a consulta trustStore do certificado, se a conexão utilizar TLS e a propriedade trustServerCertificate estiver definida como "false".
trustStoreType

Cadeia

JKS
Defina essa propriedade para especificar o tipo de armazenamento confiável a ser usado para o modo FIPS.

Os valores possíveis são PKCS12 ou tipo definido pelo provedor FIPS.
useBulkCopyFor...
BatchInsert

Booleano
["verdadeiro" | "falso"]

falso
(Versão 9.2+) Essa propriedade de conexão pode ser habilitada para usar de forma transparente a API de cópia em massa ao fazer operações de inserção em lote usando java.sql.PreparedStatement. Este recurso potencialmente fornece maior desempenho quando ativado.

Este recurso está desativado por padrão. Defina essa propriedade como "true" para habilitar esse recurso.

Nota importante: Esta funcionalidade suporta apenas consultas INSERT totalmente parametrizadas. Se as consultas INSERT forem combinadas com outras consultas SQL ou contiverem dados em valores, a execução retornará à operação básica de inserção em lote.

Para obter mais informações sobre como usar essa propriedade, consulte Usando a API de cópia em massa para a operação de inserção em lote
useDefaultGSSCredential

Booleano
["verdadeiro" | "falso"]

falso
(Versão 12.6+) Sinalizador para indicar se o driver deve criar o GSSCredential em nome do usuário para usar o GSS-API nativo para autenticação Kerberos.
useDefaultJaasConfig

Booleano
["verdadeiro" | "falso"]

falso
(Versão 12.6+) Quando o aplicativo existe ao lado de bibliotecas que configuram o JAAS no nível do sistema, definir essa propriedade como true permite que o driver use essa mesma configuração para executar a autenticação Kerberos.
useFmtOnly

Booleano
["verdadeiro" | "falso"]

falso
(Versão 7.4+) Fornece uma maneira alternativa de consultar metadados de parâmetro do servidor. Defina essa propriedade como "true" para especificar que o driver deve usar SET FMTONLY lógica ao consultar metadados de parâmetro. Esse recurso está desativado por padrão e não é recomendado usar essa propriedade, pois SET FMTONLY está marcada para preterição. useFmtOnly é disponibilizado para uso apenas como uma solução alternativa para problemas e limitações conhecidos no sp_describe_undeclared_parameters.

Atualmente, esse recurso suporta apenas consultas SELECT/INSERT/UPDATE/DELETE únicas. A tentativa de usar esse recurso com consultas múltiplas/sem suporte faz com que o driver tente analisar a consulta, mas provavelmente resultará em uma exceção.

Para obter mais informações sobre essa propriedade, consulte Recuperando ParameterMetaData via useFmtOnly.
nome de utilizador,
utilizador

Cadeia
[<=128 caracteres]

nulo
Se houver conexão com o utilizador e a senha do SQL, o utilizador da base de dados.

Para conexão Kerberos com nome principal e senha, essa propriedade é definida como Nome principal Kerberos.

(Versão 10.2+) Quando authentication=ActiveDirectoryServicePrincipal, a propriedade userName especifica uma ID de cliente segura válida do Azure Ative Directory.
ID da estação de trabalho

Cadeia
[<=128 caracteres]

<empty string>
O ID da estação de trabalho. Usado para identificar a estação de trabalho específica em várias ferramentas de criação de perfil e registro.

Se nenhum for especificado, o <empty string> será usado.
xopenStates

Booleano
["verdadeiro" | "falso"]

falso
Defina como "true" para especificar que o driver retorna códigos de estado compatíveis com XOPEN em exceções.

O padrão é retornar códigos de estado do SQL 99.

Observação

O Microsoft JDBC Driver para SQL Server usa os valores padrão do servidor para propriedades de conexão, exceto para ANSI_DEFAULTS e IMPLICIT_TRANSACTIONS. O Microsoft JDBC Driver para SQL Server define automaticamente ANSI_DEFAULTS como ON e IMPLICIT_TRANSACTIONS como OFF.

Importante

Se a autenticação estiver definida como ActiveDirectoryPassword, a seguinte biblioteca precisará ser incluída no classpath: microsoft-authentication-library-for-java. Ele pode ser encontrado em Maven Repository. A maneira mais simples de baixar a biblioteca e suas dependências é usando o Maven:

  1. Instale o Maven no seu sistema
  2. Vá para a página GitHub do driver
  3. Transferir o ficheiro pom.xml
  4. Execute o seguinte comando Maven para baixar a biblioteca e suas dependências: mvn dependency:copy-dependencies

Ver também

Conectando-se ao SQL Server com o driver JDBC
modo FIPS