これがODT+VS.NETの開発スタイルだ:.NETでOracleアプリを作ろう(2)(4/4 ページ)
本記事では、Oracleが提供する.NETプラットフォーム開発向けのミドルウェアやツールを使って、.NET環境でOracleアプリケーション開発を効率的に行うためのノウハウを解説する。(編集部)
ポリシーの作成
使用するODTの機能
- Oracle問合せウィンドウ
用意したEMP_VPD表にポリシーを作成します。Oracleエクスプローラで、SYSTEMユーザーでの接続からOracle問合せウィンドウを開いてリスト2のコードを入力し、実行します(図17)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ポリシーの追加には、DBMS_RLS.ADD_POLICY関数を使用します。リスト2に赤字番号で示したそれぞれのパラメータの概略は以下のようになります。
- ポリシーを設定する表を所有するユーザー
- ポリシーを設定する表
- ポリシー名。1つの表について一意の名前である必要があります
- ポリシー・ファンクションを所有するユーザー
- ポリシー・ファンクション名
- ポリシーを適用する文の種類
ポリシー適用後のデータの確認
使用するODTの機能
- Oracleデータ・ウィンドウ
- Oracle問合せウィンドウ
Oracleデータ・ウィンドウを使用してEMP_VPDのデータを確認します。ポリシーを設定する前には見えていたデータが見えません。普通に接続されたセッションにはCLIENT_IDENTIFIERの値がセットされていませんので、ポリシーに従い、「WHERE 1=2」が内部的に追加され、データが表示されないのが正常な動作になります(図18)。
CLIENT_IDENTIFIERに値をセットするには、.NETアプリケーションではClientIdを使用することで簡単にセットできますが、問合せウィンドウからプロシージャ(DBMS_SESSION.SET_IDENTIFIER)を使用してセットすることも可能です。CLIENT_IDENTIFIERをセットした後であれば、条件に応じたデータが表示されます。
正常にVPDの設定ができたかどうかを確認するために、CLIENT_IDENTIFIERにD10をセットして、その後、EMP_VPD表にアクセスします。D10がセットされているのでdeptnoが10のものだけが表示されることが確認できます(図19)。
まず、リスト3のプロシージャを使用して、CLIENT_IDENTIFIER値をセットし、同じ問合せウィンドウ内で、SELECT文(リスト4)を実行します(図19)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
問合せウィンドウでは、クエリの結果をグリッドで表示しますが、テキスト形式での表示に変更することも可能です(図20)。
以上でVPDの設定・確認は終了です。
今回はVPDの設定をODTの機能を使用して行いました。ODTを使用することで、VPDのような複雑な設定を含め、アプリケーション開発に必要なデータベース上の作業はすべてVS.NETから可能であることが理解できたと思います。また、データベースの設定だけではなく、PL/SQLの開発もVS.NETを用いてコーディングからコンパイルまでを行うことができます。
次回は、いよいよ今回設定した表にアクセスする.NETアプリケーションを作成します。ご期待ください。
Copyright © ITmedia, Inc. All Rights Reserved.