【问题标题】:How to pass user name or user ip adress on jdbc connection?如何在 jdbc 连接上传递用户名或用户 IP 地址?
【发布时间】:2014-07-01 23:12:27
【问题描述】:

我有 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());
    }
}

我能做什么?还是其他解决方案?

【问题讨论】:

  • 请澄清。您想使用 LDAP 用户的凭据连接到数据库,或者您想知道哪个用户执行了 DML?
  • 好的,我解释清楚了。每个表都有触发器,这个触发器在插入/更新/删除之后插入日志表。日志表有 activite_user 字段,默认值为 USER(Oracle 用户)但我的 jdbc 只连接一个用户(在 weblogic 服务器上设置 user= asdf)。在每个日志记录中写入activite_user = asdf。这是问题。我想使用 LDAP 用户 getconnection(user,password) 类。例如 LDAP 用户是 abc。 Oracle 用户是 abc。用户登录系统时,与该用户打开连接。不是 asdf(设置 weblogic 的数据库用户名)

标签: java oracle jdbc


【解决方案1】:

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

【讨论】:

  • 感谢回复我解决了问题。首先用户使用 asdf(weblogic 用户参数)连接 getconnection() 方法(不是用户,密码参数),稍后当 LDAP 成功时,其他进程使用 getconnection(用户,密码)方法。我的错是,当用户首先连接时,调用 getconnection(user,password)。除非 LDAP 成功,否则 jdbc 无法与 oracle 用户、密码连接。首先oracle需要连接到管理员用户。谢谢大家的回复
猜你喜欢
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 2016-07-30
  • 2011-01-05
相关资源
最近更新 更多