En mulig løsning er at implementere Oracle Wallet. Oprettelse af en Oracle Wallet-post involverer:
- et tnsname-opløsningsnavn etableret for nævnte instans
- et brugernavn og en adgangskode
Eksempel:Oracle-siden, jeg arbejder med, hedder ORCL, den bruger, jeg skal oprette forbindelse til, hedder my_user. I din tnsnames.ora-fil har du allerede en post, der løser ORCL-tjenestens navn/sid, opret en mere med nøjagtig de samme parametre:
#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)))
Når den nye post er løst, skal du oprette oracle wallet-posten for det lokale navn ORCL_MY_USER. Dette nye lokale navn, du vil bruge i dit python-script til at oprette forbindelse uden at angive eller hårdkode en adgangskode i det.
Eksempel: