IBM i で特定のユーザーが所有者になっているオブジェクトをリスト化できませんか?
Question
現在ユーザー・プロファイルの整理を行っています。
その一環で特定のユーザーが所有者になっているオブジェクトの情報を取得したいと考えています。
DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*ALL) の方法は知っていますが、不要な情報(他のユーザーの情報)が多くて確認に時間がかかってしまうのが難点です。
出来れば、特定のユーザーのオブジェクトだけリストしたいのですがよい方法はないでしょうか。
Answer
DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(LIB/FILE)
を実行してQUERYで確認したり、データ転送にてExcel形式でダウンロードしソート機能を駆使すると確認し易いです。
ただ、OBJ(*ALL/*ALL) で実行するので情報の抽出自体に少々時間が掛かることや、他のユーザーの情報も取得されるのが煩わしくもあります。
そこで、SQLであれば 「OBJECT_OWNERSHIP」ビューがあります。こちらではいかがでしょうか。
OBJECT_OWNERSHIP ビュー
https://www.ibm.com/docs/ja/i/7.5.0?topic=services-object-ownership-view
例1:ライブラリーオブジェクトとIFS上のオブジェクト
SELECT * FROM QSYS2.OBJECT_OWNERSHIP
WHERE AUTHORIZATION_NAME = 'ユーザー名'
例2:ライブラリーオブジェクトのみ
SELECT * FROM QSYS2.OBJECT_OWNERSHIP
WHERE AUTHORIZATION_NAME = 'ユーザー名'
AND PATH_NAME IS NULL

例3:統合ファイル・システム(IFS)上のオブジェクトのみ
SELECT * FROM QSYS2.OBJECT_OWNERSHIP
WHERE AUTHORIZATION_NAME = 'ユーザー名'
AND PATH_NAME IS NOT NULL

IBM i Access Client Solutions(以下、ACS)の「SQLスクリプトの実行」機能で実行すれば結果を簡単にExcelとして出力できます。
ACSのSQL実行結果をダウンロードしたい
https://www.e-bellnet.com/category/technology/2212/2212-02.html
OBJECT_OWNERSHIPビューはWRKOBJOWN コマンドで確認できる情報に相当するのでライブラリーオブジェクトだけでなく、IFS上のオブジェクトの情報もリストできます。
お役に立てば幸いです。
by . 槻樹