如何构造含Oracle Wallet的无TNS项Oracle 19c SSL ODBC连接字符串
构造嵌入Oracle Wallet信息的ODBC连接字符串(SSL连接Oracle 19c)
完整连接字符串示例
Driver={Oracle in OraClient19Home1};DBQ=(description=(address=(protocol=tcps)(host=your-db-host)(port=1522))(connect_data=(service_name=your-service-name))(security=(ssl_server_cert_dn="CN=your-db-cert-dn")(wallet_location=(source=(method=file)(method_data=(directory=\\path\\to\\your\\wallet)))));Uid=/;
参数说明
- Driver:指定Oracle ODBC驱动的名称,需匹配你本地安装的驱动版本,常见值如
{Oracle in OraClient19Home1}或{Oracle ODBC Driver}。 - DBQ:将完整的数据库连接描述直接嵌入,替代TNS条目,核心子参数:
address:定义SSL连接的网络信息,protocol=tcps启用SSL,host为数据库服务器地址,port为SSL监听端口(通常是1522,以实际配置为准)。connect_data:指定目标数据库的服务名(注意不是SID)。security:配置SSL和Wallet相关验证:ssl_server_cert_dn:可选但推荐,指定数据库服务器证书的DN,用于验证服务器身份,避免中间人攻击。wallet_location:指定本地Oracle Wallet的路径,Windows系统用双反斜杠\\,Linux系统用正斜杠/。
- Uid=/:使用Wallet中存储的凭证进行身份验证,无需手动输入用户名密码;若Wallet设置了密码,需添加
Pwd=your-wallet-password参数。
注意事项
- 确保使用的Oracle ODBC驱动版本为19c或与Oracle 19c兼容的版本。
- 运行ODBC程序的用户需拥有Wallet目录的读取权限。
- 所有占位符(如
your-db-host、your-service-name)需替换为实际环境中的对应值。
内容的提问来源于stack exchange,提问作者azuresnowflake1
相关产品推荐
相关产品推荐

