0

如何使用 jsp 执行“conn / as sysdba”。使用

PreparedStatement stmt = conn.prepareStatement(sql);

显示 java.sql.SQLException: SQL string is not Query?

我怎么能用jsp做到这一点?

4

2 回答 2

0

是的,sql是查询,但是你需要resultQuery = stmt.executeQuery()保存结果。

另外,查看驱动程序连接、数据库所在机器的名称以及用户名和密码。

于 2012-04-09T09:20:40.113 回答
0

conn是 SQL*Plus 命令,而不是 SQL 语句。所以它只能在 SQL*Plus(或另一个恰好支持 SQL*Plus 命令的客户端工具)中使用。您不能通过 JDBC 使用它。

conn / as sysdba告诉 SQL*Plus 使用操作系统身份验证以启用角色的用户身份连接到SYS数据库SYSDBA。在这种情况下,操作系统身份验证需要在安装数据库的服务器上调用 SQL*Plus,并且用户以操作系统用户“oracle”的身份登录。JSP 页面似乎不太可能适合和/或可能使用这样的操作系统身份验证——这至少要求运行 JSP 代码的应用程序服务器安装在同一台服务器上安装了 Oracle 并且它以与 Oracle 数据库相同的操作系统用户身份运行。这些都不太可能。与数据库SYS连接SYSDBA对于 JSP 页面,启用角色也很奇怪——您希望 JSP 代码以这些特权运行是非常罕见的。通常,Oracle 数据库不允许SYS来自运行 Oracle 的机器以外的任何设备的连接,因为一般情况下,只有 DBA 会使用该帐户登录,然后只执行一小部分实际需要该帐户的任务某种提升的访问权限。

应该可以将 Oracle 配置为接受SYS具有该SYSDBA角色的用户的远程连接。并且应该可以在您的 JSP 代码中配置连接字符串以使用该帐户的适当密码。但是想要两者都做是非常罕见的,并且会打开如此大的安全漏洞,以至于我会严重质疑这是否真的是你想要做的。你能解释一下你试图解决的问题吗?

于 2012-04-09T17:05:55.710 回答