Conexões JDBC Thin com uma Wallet (mTLS)
O Autonomous Database determina uma conexão segura que usa a Segurança da Camada de Transporte (TLSv1.2). Dependendo das opções de configuração de rede, o Autonomous Database suporta a autenticação mTLS e TLS.
Se você usar TLS, em vez de mTLS, para suas conexões que utilizam o Driver JDBC Thin com JDK8u162 ou superior, não será necessária uma wallet. As conexões TLS são ativadas para as seguintes configurações de rede:
-
Somente acesso de ponto final privado: configuração de rede com um ponto final privado.
-
Acesso seguro somente de IPs e VCNs permitidos: configuração com uma Lista de Controle de Acesso (ACL)
Se o Autonomous Database estiver em um ponto final público sem qualquer ACL, você poderá adicionar
0.0.0.0/0
como sua ACL de CIDR e ativar a autenticação TLS. A adição de0.0.0.0/0
como ACL de CIDR é idêntica à inclusão do 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.
- 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 exige que você forneça as credenciais do banco de dados Oracle, incluindo as wallets Oracle ou os arquivos Java KeyStore (JKS), ao estabelecer conexão com o banco de dados. - Usando uma String de Conexão do URL JDBC com o Driver JDBC Thin e Wallets
A string de conexão é encontrada no arquivotnsnames.ora
, que faz parte do download das credenciais do cliente. O arquivotnsnames.ora
contém os nomes de serviço predefinidos. Cada serviço tem seu próprio alias de 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 estabelecer conexão com os Autonomous Databases usando Wallets Oracle ou 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. Normalmente, você define as propriedades no script de inicialização do aplicativo. - Conexões JDBC Thin com um Proxy HTTP
Se o cliente estiver protegido por firewall e sua configuração de rede exigir um proxy HTTP para estabelecer conexão com a internet, use o JDBC Thin Client 18.1 ou superior, que permite conexões por meio de proxies HTTP.
Tópico principal: Conectar-se com o Driver JDBC Thin
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 ( mutual TLS). O uso da autenticação mTLS exige que você forneça as credenciais do banco de dados Oracle, incluindo as wallets Oracle ou os arquivos Java KeyStore (JKS), 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 JDBC Thin com uma Wallet (mTLS)
Usando uma String de Conexão do URL JDBC com o Driver JDBC Thin e Wallets
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 de TNS e string de conexão.
dbname_high
como alias de 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 do 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 uma propriedade de conexão (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
Usando o driver JDBC 18.3, a string de conexão inclui o alias de 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 arquivo
tnsnames.ora
. - O local dos arquivos da Oracle Wallet (
ewallet.sso
,ewallet.p12
) ou Java KeyStore (JKS) (truststore.jks
,keystore.jks
). - O local do arquivo
ojdbc.properties
. Esse arquivo contém as propriedades de conexão exigidas para usar Oracle Wallets ou 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 de TNS. Para estabelecer conexão usando drivers JDBC mais antigos:
- Defina o local do arquivo
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 a wallet ou JKS além de
TNS_ADMIN
.
Por exemplo, nesse caso, você define o alias de 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 o Autonomous Database para obter mais detalhes.
Tópico principal: Conexões JDBC Thin com uma Wallet (mTLS)
Usando uma Conexão JDBC com o Driver JDBC 18.3
Os aplicativos que usam o driver JDBC Thin podem estabelecer conexão com o Autonomous Databases usando Wallets Oracle ou Java KeyStore (JKS).
Usando Oracle Wallet
Para usar o Java e o Driver JDBC Thin 18.3 para se conectar ao Autonomous Database com a Oracle Wallet:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Requisitos de Conexão do Driver JDBC Thin com Wallets (mTLS) para obter mais informações.
-
Verifique 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 usando 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 detnsnames.ora
e os arquivos de wallet. Além disso, no código-fonte de amostra, 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, no código-fonte de amostra, atualize o nome do usuário com o nome do usuário do Active Directory e atualize a senha com a senha do usuário do Active Directory. Consulte Usar o Microsoft Active Directory com o Autonomous Database para obter mais informações. -
Defina o local 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. -
Compile e Execute: Para obter uma conexão bem-sucedida, compile e execute a amostra. Certifique-se de ter
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
, emclasspath
. 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 baixado do Autonomous Database elimina a necessidade de seu aplicativo usar autenticação de nome de usuário/senha.
Usando o Java KeyStore
Para usar o Java e o Driver JDBC Thin 18.3 para se conectar ao Autonomous Database com o Java KeyStore (JKS), faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Requisitos de Conexão do Driver JDBC Thin 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 o banco de dados. Um teste simples é fazer download de DataSourceSample.java ou UCPSample.java em amostras de código JDBC. Nessa amostra, use o URL de conexão, conforme mostrado. Observe que a conexão
DB_URL
contém o alias de TNS, por exemplo,dbname_high
, presente no arquivotnsnames.ora
. Você pode fornecer o caminho do arquivotnsnames.ora
por meio da propriedadeTNS_ADMIN
, conforme mostrado no URL. Certifique-se de utilizar o nome de usuário e a senha relacionados ao seu 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 do 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. -
Defina ao arquivo
ojdbc.properties
as propriedades de conexão relacionadas ao JKS. As senhas keyStore e do armazenamento confiável são aquelas especificadas quando você faz download do arquivo.zip
das credenciais do cliente.Para usar a conectividade SSL em vez da Oracle Wallet, especifique os arquivos de armazenamento de chaves e armazenamento confiável e a senha respectiva 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
Comente a propriedade relacionada à wallet no arquivoojdbc.properties
. Por exemplo:# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
-
Compile e Execute: Para obter uma conexão bem-sucedida, compile e execute a amostra. Por exemplo:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Tópico principal: Conexões JDBC Thin com uma Wallet (mTLS)
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. Normalmente, você define as propriedades no script de inicialização do aplicativo.
Se você não puder usar os drivers JDBC mais recentes, poderá estabelecer conexão com o Autonomous Database usando 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 transmitir wallets ou propriedades relacionadas ao JKS como propriedades do sistema ou como propriedades de conexão para estabelecer uma conexão.
Usando Oracle Wallet
Para usar o Java e os Drivers JDBC 12.2 ou mais antigos para se conectar ao Autonomous Database com a Oracle Wallet, faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Requisitos de Conexão do Driver JDBC Thin com Wallets (mTLS) para obter mais informações.
-
Verifique 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 usando 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 de origem 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. -
Defina o local da wallet: Adicione
OraclePKIProvider
ao 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 normalmente é semelhante a:security.provider.14=oracle.security.pki.OraclePKIProvider
-
Compile e Execute: Para obter uma conexão bem-sucedida, compile e execute a amostra. Certifique-se de ter
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
, emclasspath
. Além disso, você precisa especificar as propriedades de conexão. Atualize as propriedades com o local onde estãotnsnames.ora
e os arquivos da wallet.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
São exemplos do sistema Windows. Adicione um caractere de continuação
\
se você estiver definindo as 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 recentes para se conectar ao Autonomous Database com o Java KeyStore (JKS), faça o seguinte:
-
Certifique-se de que os pré-requisitos sejam atendidos: Consulte Requisitos de Conexão do Driver JDBC Thin com Wallets (mTLS) para obter mais informações.
-
Verifique 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 por meio de amostras de código JDBC e atualizar o URL de conexão para que tenha o alias de TNS necessário e informar
TNS_ADMIN
, fornecendo o caminho detnsnames.ora
e atualizar o URL de conexão para que tenha o alias de TNS necessário. Além disso, no código-fonte de amostra, 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 de origem 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. -
Compile e Execute: Para obter uma conexão bem-sucedida, compile e execute a amostra. Informe as propriedades de conexão, conforme mostrado. Atualize as propriedades com o local onde estão os arquivos
tnsnames.ora
e JKS. Se você 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 JDBC Thin com uma Wallet (mTLS)
Conexões JDBC Thin com um Proxy HTTP
Se o cliente estiver protegido por firewall e a configuração de rede exigir um proxy HTTP para estabelecer conexão com a internet, use o JDBC Thin Client 18.1 ou superior, que permite conexões por meio de proxies HTTP.
Para estabelecer conexão com o Autonomous Database por meio de um proxy HTTPS, abra e atualize o 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 do proxy HTTPS. Por exemplo:
-
Adicione o nome do host e a porta do proxy HTTP às definições de conexão em
tnsnames.ora
. Adicione os parâmetros https_proxy e https_proxy_port na seção de endereço das definições de conexão. Por exemplo, a seguinte amostra 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 à 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 dependeria 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 arquivo
tnsnames.ora
para o proxy HTTP pode não ser suficiente, dependendo das políticas de segurança e configuração de rede 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 de 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 JDBC Thin com uma Wallet (mTLS)