Как передать имя пользователя или IP-адрес пользователя на соединение JDBC?

1

У меня есть база данных пользователей оракула. Система имеет пользователей в LDAP. И я хочу сохранить журнал пользователя, когда пользователь вставляет/обновляет/удаляет. Но как передать имя пользователя или пароль пользователя и пароль пользователя на oracle на соединение jdbc?

Я использую 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
    Просьба уточнить. Вы хотите подключиться к базе данных с учетными данными пользователя LDAP или хотите узнать, какой пользователь сделал DML?
  • 0
    хорошо, я объясню ясно. каждая таблица имеет триггер, и этот триггер вставляет таблицы журнала после вставки / обновления / удаления. В таблице журнала есть поле activite_user, значение по умолчанию - USER (пользователь Oracle). Но мой jdbc подключает только одного пользователя (настройка user = asdf на сервере weblogic). запись activite_user = asdf в каждой записи журнала. Это проблема. Я хочу использовать класс LDAP пользователя getconnection (user, password). Например, пользователем LDAP является abc. Пользователь Oracle - abc. пока пользователь входит в систему, соединение с этим пользователем открыто. Не asdf (настройка имени пользователя базы данных weblogic)
Теги:
jdbc

1 ответ

1

Похоже, у вас есть пользователь admin, скажем asdf. Вы хотите попасть в БД Oracle с учетными данными администратора. Этого можно добиться с помощью JNDI, настроенного в Weblogic. В консоли Weblogic перейдите в раздел Службы> Источники данных. Создайте новый общий источник данных, создав JNDI-имя(). Использовать драйвер базы данных по умолчанию. Заполните все необходимые сведения о подключении и проверьте подключение к базе данных. При поиске замените строковый аргумент на имя JNDI, которое вы указали в консоли, то есть dataSource = (javax.sql.DataSource) ctx.lookup("") ;.

  • 0
    Спасибо за ответ. Я решил проблему. Сначала пользователь подключил методы getconnection () (не пользователь, параметр пароля) с asdf (пользовательский параметр weblogic), позже, когда LDAP добился успеха, другой процесс использовал методы getconnection (пользователь, пароль). Моя ошибка в том, что когда пользователь подключается первым, вызовите getconnection (user, password). Если LDAP не является успешным, jdbc не соединяется с пользователем оракула, паролем. Во-первых, оракулу нужно подключиться к администратору. Спасибо всем ответить

Ещё вопросы

Сообщество Overcoder
Наверх
Меню