如何在jdbc连接上传递用户名或用户IP地址?

时间:2014-07-01 23:12:28

标签: java oracle jdbc

我有oracle用户数据库。系统在LDAP上有用户。我想在用户插入/更新/删除时保留用户的日志。但是如何在jdbc连接上将用户名或用户ip和用户密码传递给oracle?

我使用weblogic。只有一个用户和密码的系统连接。此用户正在设置weblogic通用数据源。

我的jdbc连接类是

public class DBFactory {
private static javax.sql.DataSource dataSource = null;

public static Connection getConnection(String user, String password) {
    Connection connection = null;

    try {
        if (dataSource == null) {
            //weblogic app server
            javax.naming.InitialContext ctx = new javax.naming.InitialContext();

            dataSource = (javax.sql.DataSource) ctx.lookup("jdbc/XXXX");

        }   

        connection=dataSource.getConnection();
        Statement statement = connection.createStatement();
        statement.execute("ALTER SESSION SET NLS_SORT=XTURKISH_AI");
        statement.execute("ALTER SESSION SET NLS_COMP=LINGUISTIC");

        statement.close();
        return connection;
    } catch (Exception ex) {
        throw new DBFactoryException(ex.getMessage());
    }
}

我该怎么办?或另一种解决方案?

1 个答案:

答案 0 :(得分:1)

听起来你有一个管理员用户,比如asdf。您希望使用管理员凭据访问Oracle DB。这可以使用Weblogic中配置的JNDI来实现。在Weblogic控制台中,转到服务>数据源。创建一个新的通用数据源,确保创建一个JNDI名称()。使用默认数据库驱动填写所有需要的连接信息并测试数据库连接。在查找中,将字符串参数替换为您在控制台中提供的JNDI名称,即dataSource =(javax.sql.DataSource)ctx.lookup(“”);.