2024-04-24 20:46:05 发布
网友
我在谷歌上搜索了一下,但没有找到任何实质性的结果。是否可以使用基于密钥的身份验证来使用Python连接到Oracle服务器?我的目标是能够自动化使用Python进行的一些报告,而不必在服务器的任何位置存储用户名/密码。在
一个可能的解决方案是实现Oracle钱包。创建Oracle钱包条目需要:
示例:我使用的Oracle sid名为ORCL,必须与之连接的用户名为my\u user。在你的tnsnames.ora公司文件您已经有一个解析ORCL服务名称/sid的条目,请使用完全相同的参数再创建一个条目:
#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)))
在成功解析新条目后,为ORCL\u MY_USER local name创建oracle wallet条目。您将在python脚本中使用这个新的本地名称进行连接,而无需在其中提供或硬编码密码。在
示例:
import cx_Oracledb = cx_Oracle.connect("/@ORCL_MY_USER")cursor = db.cursor()r = cursor.execute("SELECT username, password, account_status, default_tablespace, temporary_tablespace from dba_users order by username")for username, password, account_status, default_tablespace, temporary_tablespace in cursor: print username, '\t', password, '\t', account_status, '\t', default_tablespace, '\t', temporary_tablespace
import cx_Oracle
db = cx_Oracle.connect("/@ORCL_MY_USER")
cursor = db.cursor()
r = cursor.execute("SELECT username, password, account_status, default_tablespace, temporary_tablespace from dba_users order by username")
for username, password, account_status, default_tablespace, temporary_tablespace in cursor:
print username, '\t', password, '\t', account_status, '\t', default_tablespace, '\t', temporary_tablespace
是的,您必须指定Oracle wallet在中的位置sqlnet.ora. 在
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/product/11.2.0.2/dbhome_1/owm/wallets/oracle))) SQLNET.WALLET_OVERRIDE = TRUE SSL_CLIENT_AUTHENTICATION = FALSE SSL_VERSION = 0
据我所知,Oracle wallet的默认位置在$Oracle\u HOME/owm/wallets/下。在
一个可能的解决方案是实现Oracle钱包。创建Oracle钱包条目需要:
示例:我使用的Oracle sid名为ORCL,必须与之连接的用户名为my\u user。在你的tnsnames.ora公司文件您已经有一个解析ORCL服务名称/sid的条目,请使用完全相同的参数再创建一个条目:
在成功解析新条目后,为ORCL\u MY_USER local name创建oracle wallet条目。您将在python脚本中使用这个新的本地名称进行连接,而无需在其中提供或硬编码密码。在
示例:
是的,您必须指定Oracle wallet在中的位置sqlnet.ora. 在
据我所知,Oracle wallet的默认位置在$Oracle\u HOME/owm/wallets/下。在
相关问题 更多 >
编程相关推荐