python cx_oracle и информация о сервере - PullRequest
7 голосов
/ 22 февраля 2012

Чтобы продемонстрировать функцию безопасности Oracle, необходимо вызвать OCIServerVersion () или OCIServerRelease () , когда сеанс пользователя еще не установлен.

Имея параметр базы данных sec_return_server_release_banner = false.Я использую модуль Python cx_Oracle для этого, но я не уверен, как получить версию сервера перед установлением соединения.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 16 января 2014

Без установления соединения. Нет, ты никогда ничего не сможешь спросить. Это похоже на переход на страницу Google. (Интернет-архитектура - если вы называете это сеансом или без сеанса)

Что касается Authentical, если права не установлены - Oracle использует имя пользователя nobody в качестве пользователя и, таким образом, дает каждому пользователю сеанс.

Я являюсь пользователем Oracle APEX и использую Python, регулярные выражения PLSQL.

Это один хороший вопрос. Спасибо.

0 голосов
/ 25 января 2013

Зависит от вашей архитектуры ПО и вашего намерения быть готовым к кроссплатформенности.

cx_Oracle зависит от клиента Oracle.Таким образом, вы уверены, что на известном пути есть клиент Oracle.Даже если вы не хотите использовать клиент Oracle для обычной сессии, вы можете использовать его для предварительной проверки сервера.

В Linux / Unix вы можете запустить в подпроцессе следующий код:

sqlplus user/pasword@INSTANCE <<< "quit"| grep "Oracle Database"| head -n 1 

Grep и другая обработка может быть выполнена в вашем коде, и в Windows это необходимо.По коду вы получите версию Oracle и узнаете, верна ли информация о соединении.

...