SSH-туннель не работает в DataGrip

У меня есть база данных Oracle, которая расположена на server_c и доступна только в том случае, если вы находитесь на server_b. Итак, чтобы подключиться к этой базе данных Oracle, мне нужно сначала войти в server_b через SSH и ввести следующую команду, чтобы подключиться к нему.

sqlplus username/password@server_c:1571/service

Я хочу подключиться к базе данных Oracle в DataGrip. Сначала я ввел свое имя пользователя и пароль на вкладке SSH/SSL.

вкладка ssh

Затем я ввел общую информацию о базе данных.

введите описание изображения здесь

Я думал, что все будет хорошо, но когда я нажал Test Connection, у меня возникла ошибка.

Ошибка: соединение с Oracle - @server_c не удалось. ORA-00604: ошибка на уровне рекурсивного SQL 1 ORA-20001: сервер отсутствует в списке допустимых серверов приложений ORA-06512: в строке 28

Эта ошибка возникает, если я пытаюсь подключиться к базе данных напрямую без предварительного входа в server_b. Другими словами, я думаю, что DataGrip не подключается к туннелю SSH перед подключением к базе данных.

Я не уверен, правильно ли я использую вкладку SSH/SSL таким образом. Поэтому, если у вас есть идеи, почему это не работает, или какое-либо решение, пожалуйста, дайте мне знать.


person Searene    schedule 07.11.2016    source источник
comment
Вы используете предустановленный драйвер Oracle или созданный вручную? У вас есть предупреждения на экране конфигурации?   -  person kassak    schedule 16.11.2016
comment
@kassak Я использую предопределенный драйвер Oracle. Фактически, я был почти уверен, что это сработало, потому что я успешно подключился к другой базе данных Oracle. Но для этой базы данных Oracle мне нужно войти на другой сервер, чтобы использовать ее, поэтому мне нужен туннель SSH. Но туннель не работал, и я не видел никаких предупреждений на экране конфигурации, только появилась ошибка, я не знаю почему.   -  person Searene    schedule 16.11.2016
comment
@Searene, не могли бы вы воспроизвести проблему, поскольку мы переработали всю подсистему ssh?   -  person Vasilii Chernov    schedule 03.04.2020
comment
Сообщения об ошибках от 20000 до 20999 являются настраиваемыми сообщениями об ошибках, задаваемыми пользователем. Oracle предоставляет этот диапазон кодов ошибок, чтобы приложения могли вызывать или отображать пользовательскую ошибку приложения. Это выполняется с помощью функции «raise_application_error» в PL / SQL. Итак, для меня очевидно, что ваша база данных имеет триггер входа в систему, предотвращающий подключения с неавторизованных серверов. Ошибка RECURSIVE SQL сообщает вам, какая именно строка в триггере входа в систему отвечает за возникновение ошибки.   -  person Roberto Hernandez    schedule 19.07.2020
comment
Итак, похоже, что SSH работает, у вас неправильная конфигурация sqlnet.ora   -  person Vasilii Chernov    schedule 02.06.2021


Ответы (1)


Подсказка кроется в сообщении об ошибке:

Ошибка: соединение с Oracle - @server_c не удалось. ORA-00604: ошибка на уровне рекурсивного SQL 1 ORA-20001: сервер отсутствует в списке допустимых серверов приложений ORA-06512: в строке 28

Проконсультируйтесь с администратором баз данных по любому из следующих вариантов:

  1. sqlnet.ora проверка допустимого узла tcp.validnode_checking = ...

или более вероятно:

  1. триггер входа в систему, предотвращающий вход «неизвестных серверов».
person Community    schedule 07.05.2018
comment
Этот вклад кажется более подходящим в качестве комментария, чем предоставления окончательного ответа на заданный вопрос. Рассмотрите возможность использования функции комментариев в будущем ... - person Kris; 07.05.2018
comment
@Kris, за исключением того, что делиться этой информацией в комментариях тоже было бы не идеально, мне это кажется ответом. - person thatjeffsmith; 09.04.2020