Oracle のセキュリティ機能を実証するには、ユーザー セッションがまだ確立されていないときにOCIServerVersion ()またはOCIServerRelease( ) を呼び出す必要があります。
データベースパラメータを持っている間sec_return_server_release_banner = false
。これには Python cx_Oracle モジュールを使用していますが、接続を確立する前にサーバーのバージョンを取得する方法がわかりません。何か案は?
SW アーキテクチャと、クロス プラットフォームに対応する意図によって異なります。
cx_Oracle は Oracle クライアントに依存します。したがって、既知のパスに Oracle クライアントがあることは確かです。通常のセッションでOracleクライアントを使用したくない場合でも、サーバーの事前チェックに使用できます。
Linux/Unix では、次のコードのサブプロセスで実行できます。
sqlplus user/pasword@INSTANCE <<< "quit"| grep "Oracle Database"| head -n 1
grep およびその他の処理はコードで実行でき、Windows では必要です。コードによって Oracle のバージョンが取得され、接続情報が正しいかどうかがわかります。