java应用程序中使用odbc数据源连接数据库,如何获取已经定义的odbc数据源的用户名和密码?

时间:2021-02-24 21:55:03
以前测试的时候,一直是用jdbc连接的,使用连接池技术。但现在由于客户需要,不能在连接池的属性文件(.properties)中定义数据库用户名和密码。之前的数据库连接信息都是直接写在db.properties文件中的,程序运行时直接读取就可以。现在考虑安全问题,一是可以通过配置界面定义数据库连接信息而不是直接写入properties文件,在客户端对写入的数据加密(这个没问题);二是通过windows的odbc数据源连接,我在user DSN里已经定义了需要连接的数据库,并且测试成功。
现在的问题是,java程序如何读取已经在odbc数据源中定义好的数据库连接信息,如用户名,密码等?

6 个解决方案

#1


Connection.getMetaData().getXXX

#2


odbc驱动效率太低,最后不要用

#3


没办法,odbc也要尝试....
Saro所说,Connection.getMetaData().getXXX好像不行,我前提是要建立连接,一般建立连接的方法Connection con = DriverManager.getConnection(url,"user","password");但是我想在建立连接是不在程序中输入用户名和密码,但放在其它客户端的文档中又不安全,配置odbc数据源的时候不是已经定义了登陆数据库的用户名可密码了么?为什么在getConnection时还要定义,这样在程序中就已经定死了,很不方便。

#4


jni (数据源信息 [HKEY_CURRENT_USER]\Software\ODBC\ODBC.INI)

#5


先用一个小权限的用户去连接,然后在读取帐户和密码。

#6


注册表中无论[HKEY_CURRENT_USER]\Software\ODBC\ODBC.INI还是在[HKEY_LOCAL_MACHINE]下都没有密码保存的

#1


Connection.getMetaData().getXXX

#2


odbc驱动效率太低,最后不要用

#3


没办法,odbc也要尝试....
Saro所说,Connection.getMetaData().getXXX好像不行,我前提是要建立连接,一般建立连接的方法Connection con = DriverManager.getConnection(url,"user","password");但是我想在建立连接是不在程序中输入用户名和密码,但放在其它客户端的文档中又不安全,配置odbc数据源的时候不是已经定义了登陆数据库的用户名可密码了么?为什么在getConnection时还要定义,这样在程序中就已经定死了,很不方便。

#4


jni (数据源信息 [HKEY_CURRENT_USER]\Software\ODBC\ODBC.INI)

#5


先用一个小权限的用户去连接,然后在读取帐户和密码。

#6


注册表中无论[HKEY_CURRENT_USER]\Software\ODBC\ODBC.INI还是在[HKEY_LOCAL_MACHINE]下都没有密码保存的