Conexões JDBC Thin com uma Wallet (mTLS)
O Autonomous Database exige uma conexão segura que use o TLSv1.2 (Transport Layer Security). Dependendo das opções de configuração de rede, o Autonomous Database suporta autenticação mTLS e TLS.
Se você usar TLS, em vez de mTLS, para suas conexões usando o Driver JDBC Thin com JDK8u162 ou superior, não será necessária uma wallet. Conexões TLS são ativadas para as seguintes configurações de rede:
-
Somente acesso ao ponto final privado: configuração de rede com um ponto final privado
-
Acesso seguro somente de IPs e VCNs permitidos: configuração com uma ACL (Lista de Controle de Acesso)
Se o seu Autonomous Database estiver em um ponto final público sem qualquer ACL, você poderá adicionar
0.0.0.0/0
como sua ACL CIDR e ativar a autenticação TLS. A adição de0.0.0.0/0
como sua ACL CIDR é idêntica a ter seu Autonomous Database no ponto final público sem ACL.
Consulte Conexões Seguras com o Autonomous Database com mTLS ou com TLS para obter mais informações.
- Conexões de Pré-requisitos de Conexão do Driver JDBC Thin com Wallets (mTLS)
Os aplicativos que usam o driver JDBC Thin suportam autenticação TLS e mTLS (TLS mútuo). O uso da autenticação mTLS requer que você forneça credenciais do banco de dados Oracle, incluindo as wallets Oracle ou os arquivos JKS (Java KeyStore) ao estabelecer conexão com o banco de dados. - Usando uma String de Conexão de URL JDBC com Driver JDBC Thin e Wallets
A string de conexão é encontrada no arquivotnsnames.ora
que faz parte do download de credenciais do cliente. O arquivotnsnames.ora
contém os nomes de serviço predefinidos. Cada serviço tem seu próprio alias TNS e string de conexão. - Usando uma Conexão JDBC com o Driver JDBC 18.3
Os aplicativos que usam o driver JDBC Thin podem se conectar a Autonomous Databases usando o Oracle Wallets ou o Java KeyStore (JKS). - Estabelecendo Conexão Usando o Driver JDBC Thin 12.2 ou Mais Antigo
Se você estiver usando o driver JDBC 12.2.0.2 ou mais antigo, defina as propriedades Java antes de iniciar o aplicativo. Geralmente, você define as propriedades no script de inicialização do aplicativo. - Conexões Thin JDBC com um Proxy HTTP
Se o cliente estiver protegido por um firewall e sua configuração de rede exigir que um proxy HTTP se conecte à internet, você precisará usar o JDBC Thin Client 18.1 ou superior, que ativa conexões por meio de proxies HTTP.
Tópico principal: Estabelecer Conexão com o Driver JDBC Thin
Conexões de Pré-requisitos de Conexão do Driver JDBC Thin com Wallets (mTLS)
Os aplicativos que usam o driver JDBC Thin suportam autenticação TLS e mTLS (TLS mútuo). O uso da autenticação mTLS requer que você forneça credenciais do banco de dados Oracle, incluindo as wallets Oracle ou os arquivos JKS (Java KeyStore) ao estabelecer conexão com o banco de dados.
Execute as seguintes etapas antes de estabelecer conexão com o banco de dados:
Tópico principal: Conexões Thin JDBC com uma Wallet (mTLS)
Usando uma String de Conexão de URL JDBC com Driver e Wallets JDBC Thin
A string de conexão é encontrada no arquivo tnsnames.ora
, que faz parte do download das credenciais do cliente. O arquivo tnsnames.ora
contém os nomes de serviço predefinidos. Cada serviço tem seu próprio alias TNS e string de conexão.
dbname_high
como alias TNS e uma string de conexão em tnsnames.ora
:dbname_high= (description=
(address=(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com))
(connect_data=(service_name=dbname_high.oraclecloud.com))(security=(ssl_server_dn_match=yes)))
Defina o local de tnsnames.ora
com a propriedade TNS_ADMIN
de uma das seguintes maneiras:
- Como parte da string de conexão (somente com o driver JDBC 18.3 ou mais recente)
- Como uma propriedade do sistema,
-Doracle.net.tns_admin
- Como propriedade de conexão (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
)
Usando o driver JDBC 18.3, a string de conexão inclui o alias TNS e a propriedade de conexão TNS_ADMIN
.
Amostra de string de conexão usando o driver JDBC 18.3 (Linux):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Amostra de string de conexão usando o driver JDBC 18.3 (Windows):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"
A propriedade de conexão TNS_ADMIN
especifica o seguinte:
- O local do
tnsnames.ora
. - O local dos arquivos Oracle Wallet (
ewallet.sso
,ewallet.p12
) ou Java KeyStore (JKS) (truststore.jks
,keystore.jks
). - O local do
ojdbc.properties
. Esse arquivo contém as propriedades de conexão necessárias para usar o Oracle Wallets ou o Java KeyStore (JKS).
Se você estiver usando drivers JDBC 12.2.0.1 ou mais antigos, a string de conexão conterá apenas o alias TNS. Para estabelecer conexão usando drivers JDBC mais antigos:
- Defina o local do
tnsnames.ora
, como uma propriedade do sistema com-Doracle.net.tns_admin
ou como uma propriedade de conexão (OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
). - Defina as propriedades de conexão relacionadas à wallet ou JKS além de
TNS_ADMIN
.
Por exemplo, nesse caso, você define o alias TNS no DB_URL
sem a parte TNS_ADMIN
como:
DB_URL=”jdbc:oracle:thin:@dbname_high”
Consulte Nomes de Serviço de Banco de Dados para Autonomous Database para ver mais detalhes.
Tópico principal: Conexões Thin JDBC com uma Wallet (mTLS)
Usando uma Conexão JDBC com o Driver JDBC 18.3
Os aplicativos que usam o driver JDBC Thin podem se conectar a Autonomous Databases usando o Oracle Wallets ou o Java KeyStore (JKS).
Usando o Oracle Wallet
Para usar o Java e o Driver Thin JDBC 18.3 para estabelecer conexão com o Autonomous Database com o Oracle Wallet, faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Conexões de Pré-requisitos de Conexão do Driver Thin JDBC com Wallets (mTLS) para obter mais informações.
-
Verificar a conexão: Você pode usar um programa Java, um servlet ou IDEs para verificar a conexão com o banco de dados. Um teste simples é fazer download de DataSourceSample.java ou UCPSample.java em amostras de código JDBC e atualizar o URL de conexão para ter o alias TNS necessário e informar
TNS_ADMIN
, fornecendo o caminho paratnsnames.ora
e os arquivos da wallet. Além disso, na amostra de código-fonte, atualize o nome de usuário e a senha do banco de dados. Por exemplo:DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Observação
Se você estiver usando o Microsoft Active Directory com um banco de dados, na amostra de código-fonte, atualize o nome de usuário com o nome de usuário do Active Directory e atualize a senha com a senha de usuário do Active Directory. Consulte Usar o Microsoft Active Directory com o Autonomous Database para obter mais informações. -
Definir a localização da wallet: O arquivo de propriedades
ojdbc.properties
é pré-carregado com a propriedade de conexão relacionada à wallet.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Observação
Você não modifica o arquivoojdbc.properties
. O valor deTNS_ADMIN
determina o local da wallet. -
Compilar e Executar: Compile e execute a amostra para obter uma conexão bem-sucedida. Certifique-se de ter
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
, noclasspath
. Por exemplo:java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
A parte da wallet de log-in automático do arquivo zip de credenciais do cliente submetido a download do Autonomous Database elimina a necessidade de seu aplicativo usar a autenticação de nome de usuário/senha.
Usando o Java KeyStore
Para usar o Java e o Driver Thin JDBC 18.3 para estabelecer conexão com o Autonomous Database com o Java KeyStore (JKS), faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Conexões de Pré-requisitos de Conexão do Driver Thin JDBC com Wallets (mTLS) para obter mais informações.
-
Pronto para os detalhes do banco de dados: Você pode usar um programa Java, um servlet ou IDEs para verificar a conexão com seu banco de dados. Um teste simples é fazer download de DataSourceSample.java ou UCPSample.java em amostras de código JDBC. Nesta amostra, use o URL de conexão conforme mostrado. Observe que a conexão
DB_URL
contém o alias TNS, por exemplo,dbname_high
presente emtnsnames.ora
. Você pode fornecer o caminho para o arquivotnsnames.ora
por meio da propriedadeTNS_ADMIN
, conforme mostrado no URL. Certifique-se de usar o nome de usuário e a senha do banco de dados relacionados ao banco de dados.DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Observação
Se você estiver usando o Microsoft Active Directory com o Autonomous Database, certifique-se de alterar o código-fonte de amostra para usar o nome de usuário do Active Directory e a senha de usuário do Active Directory. Consulte Usar o Microsoft Active Directory com o Autonomous Database para obter mais informações. -
Definir propriedades de conexão relacionadas a JKS: Adicione as propriedades de conexão relacionadas a JKS ao arquivo
ojdbc.properties
. A senha keyStore e a senha do armazenamento confiável são a senha especificada quando você faz download do arquivo.zip
de credenciais do cliente.Para usar a conectividade SSL em vez do Oracle Wallet, especifique os arquivos de armazenamento de chaves e armazenamento confiável e sua respectiva senha no arquivo
ojdbc.properties
da seguinte forma:# Properties for using Java KeyStore (JKS) oracle.net.ssl_server_dn_match=true javax.net.ssl.trustStore==${TNS_ADMIN}/truststore.jks javax.net.ssl.trustStorePassword=password javax.net.ssl.keyStore==${TNS_ADMIN}/keystore.jks javax.net.ssl.keyStorePassword=password
Observação
Não deixe de comentar a propriedade relacionada à wallet emojdbc.properties
. Por exemplo:# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
-
Compilar e Executar: Compile e execute a amostra para obter uma conexão bem-sucedida. Por exemplo:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Tópico principal: Conexões Thin JDBC com uma Wallet (mTLS)
Estabelecendo Conexão Usando o JDBC Thin Driver 12.2 ou Mais Antigo
Se você estiver usando o driver JDBC 12.2.0.2 ou mais antigo, defina as propriedades do Java antes de iniciar o aplicativo. Geralmente, você define as propriedades no script de inicialização do aplicativo.
Se você não conseguir usar os drivers JDBC mais recentes, poderá estabelecer conexão com o Autonomous Database usando o 12.2.0.2 ou outros drivers JDBC mais antigos. Os drivers JDBC 12.2 ou mais antigos não suportam o arquivo ojdbc.properties
. Com versões mais antigas do driver JDBC, você precisa passar wallets ou propriedades relacionadas a JKS como propriedades do sistema ou como propriedades de conexão para estabelecer uma conexão.
Usando o Oracle Wallet
Para usar o Java e os Drivers JDBC 12.2 ou mais antigos para estabelecer conexão com o Autonomous Database com o Oracle Wallet, faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Conexões de Pré-requisitos de Conexão do Driver Thin JDBC com Wallets (mTLS) para obter mais informações.
-
Verificar a conexão: Você pode usar um programa Java, um servlet ou IDEs para verificar a conexão com o banco de dados. Um teste simples é fazer download de DataSourceSample.java ou UCPSample.java em amostras de código JDBC e atualizar o URL de conexão para ter o alias de TNS necessário. Além disso, atualize o código-fonte de amostra para usar o nome de usuário e a senha do banco de dados. Por exemplo:
DB_URL="jdbc:oracle:thin:@dbname_high”
Observação
Se você estiver usando o Microsoft Active Directory com o Autonomous Database, atualize o código-fonte de amostra para usar o nome de usuário do Active Directory e a senha do usuário do Active Directory. Consulte Usar o Microsoft Active Directory com o Autonomous Database para obter mais informações. -
Definir o local da wallet: Adicione o
OraclePKIProvider
no final da lista de provedores no arquivojava.security
(esse arquivo faz parte da instalação do JRE localizada em$JRE_HOME/jre/lib/security/java.security
) que geralmente se parece com:security.provider.14=oracle.security.pki.OraclePKIProvider
-
Compilar e Executar: Compile e execute a amostra para obter uma conexão bem-sucedida. Certifique-se de ter
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
, noclasspath
. Além disso, você precisa passar as propriedades de conexão. Atualize as propriedades com o local em que os arquivostnsnames.ora
e da wallet estão localizados.java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. -Doracle.net.tns_admin=/users/test/wallet_dbname -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 (Not required for 12.2) -Doracle.net.wallet_location= “(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/users/test/wallet_dbname)))” UCPSample
Estes são exemplos de sistema do Windows. Adicione um caractere de continuação
\
se estiver definindo propriedades –D
em várias linhas no UNIX (Linux ou Mac).
Usando o Java KeyStore
Para usar o Java e os Drivers JDBC Thin 12.2 ou mais antigos para estabelecer conexão com o Autonomous Database com o Java KeyStore (JKS), faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Conexões de Pré-requisitos de Conexão do Driver Thin JDBC com Wallets (mTLS) para obter mais informações.
-
Verificar a conexão: Você pode usar um programa Java, um servlet ou IDEs para verificar a conexão com o banco de dados. Um teste simples é fazer download de DataSourceSample.java ou UCPSample.java em amostras de código JDBC e atualizar o URL de conexão para ter o alias de TNS necessário e informar
TNS_ADMIN
, fornecendo o caminho paratnsnames.ora
e atualizando o URL de conexão para ter o alias de TNS necessário. Além disso, na amostra de código-fonte, atualize o nome de usuário e a senha do banco de dados. Por exemplo:DB_URL="jdbc:oracle:thin:@dbname_high”
Observação
Se você estiver usando o Microsoft Active Directory com o Autonomous Database, atualize o código-fonte de amostra para usar o nome de usuário do Active Directory e a senha do usuário do Active Directory. Consulte Usar o Microsoft Active Directory com o Autonomous Database para obter mais informações. -
Compilar e Executar: Compile e execute a amostra para obter uma conexão bem-sucedida. Você precisa informar as propriedades de conexão conforme mostrado. Atualize as propriedades com o local onde os arquivos
tnsnames.ora
e JKS são colocados. Se quiser especificar essas propriedades de conexão de forma programática, consulte DataSourceForJKS.java. Por exemplo:java -Doracle.net.tns_admin=/users/test/wallet_dbname -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=********** -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=************ -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 // Not required for 12.2
Tópico principal: Conexões Thin JDBC com uma Wallet (mTLS)
Conexões JDBC Thin com um Proxy HTTP
Se o cliente estiver protegido por um firewall e sua configuração de rede exigir que um proxy HTTP se conecte à internet, você precisará usar o JDBC Thin Client 18.1 ou superior, que ativa conexões por meio de proxies HTTP.
Para estabelecer conexão com o Autonomous Database por meio de um proxy HTTPS, abra e atualize seu arquivo tnsnames.ora
. Adicione o nome do host do proxy HTTP (https_proxy) e a porta (https_proxy_port) à string de conexão. Substitua os valores pelas informações de proxy HTTPS. Por exemplo:
-
Adicione o nome de host e a porta do proxy HTTP às definições de conexão no
tnsnames.ora
. Você precisa adicionar os parâmetros https_proxy e https_proxy_port na seção de endereço das definições de conexão. Por exemplo, o seguinte define o proxy HTTP comoproxyhostname
e a porta do proxy HTTP como80
; substitua esses valores pelas informações do proxy HTTP:
db2022adb_high =
(description=
(address=
(https_proxy=proxyhostname)(https_proxy_port=80)(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com)
)
(connect_data=(service_name=db2022adb_high.adb.oraclecloud.com)
)
(security=security=(ssl_server_dn_match=yes)
)
)
-
As versões do cliente JDBC Thin anteriores à versão 18.1 não suportam conexões por meio do proxy HTTP.
-
A conexão bem-sucedida depende de configurações de proxy específicas e o desempenho das transferências de dados dependerá da capacidade do proxy. A Oracle não recomenda o uso desse recurso em ambientes de Produção nos quais o desempenho é crítico.
-
A configuração do
tnsnames.ora
para o proxy HTTP pode não ser suficiente, dependendo da configuração de rede e das políticas da sua organização. Por exemplo, algumas redes exigem um nome de usuário e uma senha para o proxy HTTP. -
Em todos os casos, entre em contato com o administrador da rede para abrir conexões de saída com hosts no domínio
oraclecloud.com
usando a porta relevante sem passar por um proxy HTTP.
Tópico principal: Conexões Thin JDBC com uma Wallet (mTLS)