サポートチーム便り2026.11.11
ユーザプロファイルの特殊権限をEXCELへ纏めるには
Question
各ユーザプロファイルの特殊権限を確認・纏める為に下記コマンドを実行し、作成されたスプールファイルからEXCELへ纏めていますが、手間がかかります。
何か良い方法はありますでしょうか。
コマンド:PRTUSRPRF TYPE(*ALL) SELECT(*SPCAUT) SPCAUT(*ALL)
Answer
確かに、各ユーザプロファイルの特殊権限を検索・確認するには PRTUSRPRFコマンドで可能ですが、スプールファイルからEXCELへ転機するのは困難かと思います。
各ユーザプロファイルの情報は「USER_INFO_BASIC ビュー」で取得する事が出来ます。
「USER_INFO_BASIC ビュー」
https://www.ibm.com/docs/ja/i/7.6.0?topic=services-user-info-basic-view
下記SQLをACSの「SQLのスクリプト実行」から実行します。
※特殊権限 *ALLOBJ を持っているユーザプロファイルを抽出する例
SELECT AUTHORIZATION_NAME AS "User",
USER_CLASS_NAME AS "User class",
NO_PASSWORD_INDICATOR AS "No password",
SPECIAL_AUTHORITIES AS "Special authorities",
STATUS AS "Status",
cast(cast(TEXT_DESCRIPTION as char(256) ccsid 65535) as char(256) CCSID 5035) AS "Text",
CASE USER_CLASS_NAME
WHEN '*SECOFR' THEN 1
WHEN '*SECADM' THEN 2
WHEN '*SYSOPR' THEN 3
WHEN '*PGMR' THEN 4
WHEN '*USER' THEN 5
ELSE 9
END AS SORT_CODE
FROM QSYS2.USER_INFO_BASIC
WHERE STATUS = '*ENABLED'
AND SPECIAL_AUTHORITIES LIKE '%ALLOBJ%'
ORDER BY SORT_CODE
※TEXT_DESCRIPTIONは、CCSID(290)となっているので変更(cast)しています。
SQLの実行結果をEXCELへダウンロードします。
「ACSのSQL実行結果をダウンロードしたい」
https://www.e-bellnet.com/category/technology/2212/2212-02.html
特殊権限を複数指定する事も可能です。
例) *SECADM と *JOBCTL を指定する場合
AND SPECIAL_AUTHORITIES LIKE '%ALLOBJ%' の部分を AND SPECIAL_AUTHORITIES LIKE '%SECADM% %JOBCTL%' と指定します。
また、SQLを実行しEXCELを直接作成する事も可能です。
※特殊権限 *ALLOBJ を持っているユーザプロファイル一覧のEXCELを作成する例
VALUES SYSTOOLS.GENERATE_SPREADSHEET(
PATH_NAME => '/home/USRPRF/allobj_users',
SPREADSHEET_TYPE => 'xlsx',
SPREADSHEET_QUERY => '
SELECT AUTHORIZATION_NAME,
USER_CLASS_NAME,
NO_PASSWORD_INDICATOR,
SPECIAL_AUTHORITIES,
STATUS,
cast(cast(TEXT_DESCRIPTION as char(256) ccsid 65535) as char(256) CCSID 5035) AS "Text",
CASE USER_CLASS_NAME
WHEN ''*SECOFR'' THEN 1
WHEN ''*SECADM'' THEN 2
WHEN ''*SYSOPR'' THEN 3
WHEN ''*PGMR'' THEN 4
WHEN ''*USER'' THEN 5
ELSE 9
END AS SORT_CODE
FROM QSYS2.USER_INFO_BASIC
WHERE STATUS = ''*ENABLED''
AND SPECIAL_AUTHORITIES LIKE ''%ALLOBJ%''
ORDER BY SORT_CODE',
COLUMN_HEADINGS => 'LABEL',
OVERWRITE => 'REPLACE',
KILL_DAEMON => 'YES') ;
by . あすと
