• 検索結果がありません。

7-3-3. RACFプロファイルの定義と権限付与 ~ DVMメタデータ・テーブルの登録

‒ 前手順 7-3-2項で定義・有効化したRACFクラス配下に、「SQLENG.*」というプロファイルを登録する

▪ DVMが内部的に持っている、以下のメタデータ・テーブルに対応;

‒ SQLENG.TABLES 仮想テーブル情報

‒ SQLENG.COLUMNS その列に関する情報

▪ これらのテーブルは、AVZXMAPDプログラムを用いるなどして情報を取り出すことが可能 (別項)

‒ DVMのユーザーに対して、同プロファイルの READ権限を付与する

▪ 仮想テーブルSAFセキュリティーを実装した場合は、メタデータ・テーブルに対する権限も付与し ておかないと仮想テーブルに関する情報が参照できず、エラーとなる

7-3-4. RACFプロファイルの定義と権限付与 ~ ユーザー作成の仮想テーブルの登録

‒ 同様の手順で、「テーブル・オーナー.仮想テーブル名」(下記)をRACFプロファイルとして登録の上、

DVMのユーザーに権限を付与する

▪ 仮想テーブルを参照 (SQL SELECTステートメント) だけできればよい場合は ACCESS(READ) で 充分であるが、データの更新も行いたい場合 (SQL INSERT、UPDATE、DELETEステートメント) には ACCESS(UPDATE) が必要

▪ 右図は「TEMP」から始まる仮想テーブルの参照許可をユーザーDVM001に付与する場合の例

RDEFINE RAVZ SQLENG.* UACC(NONE) PERMIT SQLENG.* CLASS(RAVZ) ID(DVM001) ACCESS(READ) SETROPTS REFRESH RACLIST(RAVZ)

7-3-3. RACFプロファイル定義例

(hlq.SAVZCNTL(AVZRAVTC)にサンプルを提供)

RDEFINE RAVZ DVSQL.TEMP* UACC(NONE) PERMIT DVSQL.TEMP* CLASS(RAVZ) ID(DVM001) ACCESS(READ) SETROPTS REFRESH RACLIST(RAVZ)

7-3-4. RACFプロファイル定義例

(補足)

仮想テーブルの RACFリソース・プロファイル名: RACFクラス名.テーブル・オーナー名.仮想テーブル名

SQLVTRESOURCETYPE SQLENGTABLEOWNER マップデータセット内の名前 パラメーターの設定値 パラメーターの設定値 (自分で定義した仮想テーブル名)

(Tips) メタデータ情報の利用

▪ DVM のメタデータ・テーブル ;

‒ DVMの場合、ユーザーが定義した仮想テーブルやその列に関する情報は、

物理的には区分データセットのメンバーとして保管されている

‒ DVMではそうしたメタデータ情報をアプリケーションで容易に利用でき

るようにするため、RDBMSソフトウェア製品におけるシステム・データ ベースに準じた方法で取り出せるようにしている

▪ 情報の取り出し ~ SQL アプリケーションから

‒ 以下のメタデータ・テーブルに対して、必要に応じてアプリケーションか らSQL SELECTステートメントを発行する方式;

▪ SQLENG.TABLES ・・ 仮想テーブル情報

▪ SQLENG.COLUMNS ・・ その列に関する情報

(内部的な位置づけのためか、これら自体のメタ情報は得られず、DVM Studio等でもこれらのテーブルは表示されない)

‒ AVZXMAPD、DVMのISPFアプリケーションに加えて、高級言語インター フェース(DSClient) を用いたユーザー開発のプログラムからも利用可能

▪ 情報の取り出し ~ JDBC アプリケーションから ;

‒ DVMが提供するJDBCドライバーも、一般的なJDBCドライバー製品と同 様に「DatabaseMetaData」クラス、「getTables」等のメソッドを提供して いるので、これを利用する

‒ 例えばユーザー開発のJDBCアプリケーションでgetTablesメソッドを発 行して、仮想テーブルの情報を入手するといったことができる

‒ JDBCだけでなく、ODBCドライバーに関してもこれに準じる

Driver driver = (Driver)(Class.forName(myDriverName).newInstance());

conn1 = DriverManager.getConnection(myURL, myUserName, myPassword);

//Display All Table Names

DatabaseMetaData tM = conn1.getMetaData();

ResultSet rsTM = tM.getTables(null, null, "%", null);

System.out.println("LIST OF TABLES");

while (rsTM.next())

{ System.out.println(rsTM.getString(3)); }

(※getString(3)・・テーブル名は 3個目の項目であるため)

JDBCプログラムのコーディング例 (部分)

SELECT * FROM SQLENG.TABLES;

SELECT * FROM SQLENG.COLUMNS WHERE TABLE_NAME = 'STAFFVS';

(必要に応じて、WHERE条件を付けて対象を絞るとよい) SQL文の実行例

© 2019 IBM Corporation 64

手順 8. JDBC ドライバーの入手と展開

Check 項番 メンバー名 必要度 作業内容 備考

8-1 - - hlq.SAVZBIN(AVZBIN2)をダウンロードし、導入先アプリケーション・サー

バーに配布する (バイナリ形式)

8-2 - - ファイル名を「JDBCdriver.zip」などに変更する

8-3 - - インストール作業用のフォルダーを設け、zipファイルを展開する 8-4 - - アプリケーション・サーバーにデプロイする

8-5 - - 構成をカストマイズする

8-6 - - DVMサーバーに接続し、仮想テーブルの照会を実行して結果を確認する

手順 9. ODBC ドライバーの入手と展開

Check 項番 メンバー名 必要度 作業内容 備考

9-1 - - 前提ハードウェア、ソフトウェアの確認 Windows以外の場合はIBMへ

9-2 - - 導入形態の検討

9-3 - - hlq.SAVZBIN(AVZBIN3)をダウンロードし、導入先ワークステーションに配布

する (バイナリ形式)

9-4 - - ファイル名を「ODBCdriver.zip」などに変更する

9-5 - - インストール作業用のフォルダーを設け、zipファイルを展開する 9-6 - - アプリケーション実行環境に応じた導入プログラムを選択・実行する 9-7 - - 「ODBCデータソースアドミニストレーター」による構成カストマイズ

9-8 - - DVMサーバーに接続し、仮想テーブルの照会を実行して結果を確認する

関連したドキュメント