メニューボタン
サポートチーム便り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') ;

作成されたEXCEL

by . あすと

あわせて読みたい記事

PAGE TOP