jspを使用して「conn / as sysdba」を実行するにはどうすればよいですか。使用する
PreparedStatement stmt = conn.prepareStatement(sql);
java.sql.SQLException を示します: SQL 文字列はクエリではありませんか?
jspを使用してどのように行うことができますか?
conn
SQL文ではなく、SQL*Plusコマンドです。そのため、SQL*Plus (または SQL*Plus コマンドをサポートしている別のクライアント ツール) でのみ使用できます。JDBC経由では使用できません。
conn / as sysdba
は、オペレーティング・システム認証を使用しSYS
て、SYSDBA
ロールが有効なユーザーとしてデータベースに接続するようSQL*Plusに指示します。この場合のオペレーティング システム認証では、データベースがインストールされているサーバーで SQL*Plus が呼び出され、ユーザーがオペレーティング システム ユーザー「oracle」としてログインしている必要があります。JSP ページがこのようなオペレーティング システム認証を使用することが適切である、または可能である可能性は非常に低いと思われます。これには、少なくとも、JSP コードを実行しているアプリケーション サーバーが同じサーバーにインストールされている必要があります。 Oracle がインストールされていること、および Oracle データベースと同じオペレーティング システム ユーザーとして実行されていること。どちらも特に可能性はありません。と同様にデータベースに接続SYS
するSYSDBA
ロールを有効にすることも、JSP ページにとって非常に奇妙です。JSP コードをそのような権限で実行することは非常にまれです。SYS
一般に、Oracle データベースは、Oracle が実行されているマシン以外からの接続を許可しません。これは、一般に、DBA のみがそのアカウントでログインし、実際にそれを必要とする非常に小さな一連のタスクを実行するためだけだからです。昇格されたアクセスの一種。
ロールSYS
を持つユーザーのリモート接続を受け入れるように Oracle を構成できる必要があります。SYSDBA
また、JSP コードで接続文字列を構成して、そのアカウントに適切なパスワードを使用できるようにする必要があります。しかし、両方をやりたいと思うことは非常にまれであり、非常に大きなセキュリティホールを開くので、それが本当にあなたがやりたいことなのかどうか真剣に疑問に思います. 解決しようとしている問題についてもう少し説明していただけますか?
はい、sqlresultQuery = stmt.executeQuery()
はクエリですが、結果を保存する必要があります。
また、ドライバー接続、DB があるマシンの名前、およびユーザー名とパスワードを確認してください。