Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Autenticação com chaves públicas e cx_Oracle usando Python


Uma solução possível é implementar o Oracle Wallet. A criação de uma entrada da Oracle Wallet envolve:
  • um nome de resolução tnsname estabelecido para a referida instância
  • um nome de usuário e senha

Exemplo:O sid do Oracle com o qual estou trabalhando se chama ORCL, o usuário com o qual tenho que me conectar se chama my_user. No seu arquivo tnsnames.ora você já tem uma entrada que resolve o nome/sid do serviço ORCL, crie mais uma com exatamente os mesmos parâmetros:
#initial local name entry:
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = my_ip)(PORT = 1528))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))

#create an additional local name entry:
ORCL_MY_USER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = my_ip)(PORT = 1528))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))

Depois que a nova entrada for resolvida com sucesso, crie a entrada da carteira oracle para o nome local ORCL_MY_USER. Esse novo nome local você usará em seu script python para se conectar sem fornecer ou codificar uma senha nele.

Exemplo: