En möjlig lösning är att implementera Oracle Wallet. Att skapa en Oracle Wallet-post innebär att ha:
- ett tnsname-upplösningsnamn som upprättats för nämnda instans
- ett användarnamn och lösenord
Exempel:Oracle-sidan jag arbetar med heter ORCL, användaren jag måste ansluta till heter my_user. I din tnsnames.ora-fil har du redan en post som löser ORCL-tjänstens namn/sid, skapa en till med exakt samma parametrar:
#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 nya posten har lösts, skapar du oracle wallet-posten för det lokala namnet ORCL_MY_USER. Detta nya lokala namn kommer du att använda i ditt python-skript för att ansluta utan att ange eller hårdkoda ett lösenord i det.
Exempel: