Oracleのストアドプログラムユニット(プロシージャ、関数、パッケージ、およびタイプ)は、 [〜#〜] wrap [〜#〜] 機能を使用して難読化できます。
「覆い隠しによるセキュリティ」に関する一般的な議論とは別に、ラッピング機能の使用に特定の問題はありますか?
Oracle 10gおよび11gメカニズムでラップされたコードに使用できるアンラッパーがあります。これらには、オンラインの「unwrapper」とPythonで記述されたunwrapperのソースコードの両方が含まれます。
そのため、ラッピングを行っても、そのレベルのアクセス権を持つユーザーがソースコードを取得することはほとんどありません。
* _DEPENDENCIESビューを使用して、SQLトレースを通じて、またはDBMS_TRACEを使用して、コードの性質に関する追加のインジケーターを取得できます。
依存関係ビューには、プログラムから直接または間接的に呼び出される可能性のあるテーブルやその他のオブジェクトが表示されます。 SQLトレースは、プロシージャへの特定の呼び出しの結果として実行されたSQLを示します。これには、たとえば、暗号化呼び出しで使用されるソルトを示す「バインド変数」を含めることができます。 DBMS_TRACEは通常はインストールされませんが、インストールして有効にすると、行番号とプロシージャ/関数呼び出しの観点から、コードを通過するパスを追跡するために使用できます。
コードが分析されないように保護するには、最初の手段としてパッケージを使用する必要があります。プロシージャと関数を使用すると、プログラムの実行を許可されているデータベースユーザーであれば、コード全体を利用できます。パッケージでは、仕様(プログラム名と引数名/データ型)のみが使用可能であり、本体の実際のコードは、プログラムの所有者と高いデータベース権限を持つユーザー(通常はDBA)にのみ表示されます。
PL/SQLのソーステキストの折り返しは、PL/SQLコードを読み取るための技術的な手段を排除するのではなく、むしろ次の1つ以上の目標を達成するのに役立つようです。