Oracle Express 18 c вход в систему из приложения Java jdb c - PullRequest
0 голосов
/ 30 марта 2020

новый Oracle Express пользователь здесь,

Я сделал db install без проблем в моей среде Win 64, использовал sqlplus из терминала, чтобы создать пользователя и предоставить ему роли и привилегии, и, наконец, этот пользователь прекрасно работает с локальной базой данных из Oracle утилиты SQLcl - таблицы, запросы и т. д. c.

Проблема возникает, когда я пытаюсь использовать предоставленный шаблонный код из Oracle для Java. В Eclipse в новом проекте с добавленными jar jdbc8 проверенные в SQLcl учетные данные пользователя отклоняются с исключением: java. sql .SQLException: ORA-01045: пользователь C ## DBUSER не имеет привилегии CREATE SESSION; вход в систему запрещен.

Здесь используется код котла Oracle, с моими локальными данными:

  OracleDataSource ods = new OracleDataSource();
  ods.setURL("jdbc:oracle:thin:@//localhost:1521/XEPDB1"); 
  ods.setUser("c##dbUser"); 
  ods.setPassword("dbUserPassowrd"); 
  Connection conn = ods.getConnection();

  PreparedStatement stmt = conn.prepareStatement("SELECT 'Hello World!' FROM dual");
  ResultSet rslt = stmt.executeQuery();
  while (rslt.next()) {
    System.out.println(rslt.getString(1));
  }

Буду признателен за вашу помощь, спасибо!

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Правильная строка подключения должна быть: "jdb c: oracle: thin: @ // localhost: 1521 / XE", чтобы учесть имя БД, в которой пользователь был создан и ему предоставлены права доступа.

0 голосов
/ 30 марта 2020

Как Oracle говорит:

пользователь C ## DBUSER не имеет привилегии CREATE SESSION; вход в систему запрещен.

Подключитесь к базе данных Oracle как привилегированный пользователь (например, SYS) и

grant create session to c##dbuser;

(или какому-либо другому имени пользователя).

...