7

为了演示 Oracle 的安全特性,必须在用户会话尚未建立时调用OCIServerVersion()OCIServerRelease() 。

虽然有数据库参数sec_return_server_release_banner = false。我为此使用 Python cx_Oracle 模块,但我不确定如何在建立连接之前获取服务器版本。有任何想法吗?

4

2 回答 2

0

取决于您的软件架构和您准备跨平台的意图。

cx_Oracle 依赖于 Oracle 客户端。因此,您确定已知路径上有 Oracle 客户端。即使您不想在常规会话中使用 Oracle 客户端,您也可以使用它对服务器进行初步检查。

在 linux/unix 上,您可以在子进程中运行以下代码:

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

Grep 和其他处理可以在您的代码中完成,在 Windows 中这是必要的。通过代码,您将获得 Oracle 版本,并且您将知道连接信息是否正确。

于 2013-01-25T14:39:53.070 回答
0

无需建立连接,。不,你永远不能问任何事情。这就像去谷歌页面。(互联网架构 - 无论你称之为无会话还是基于会话)

至于 Authentical,如果没有设置权限 - Oracle 使用用户名“nobody”作为用户,从而为每个用户提供会话。

我是 Oracle APEX 的用户,我经常使用 Python、PLSQL。

这是一个很好的问题。谢谢。

于 2014-01-16T06:53:33.680 回答