How To
Summary
IBM i User Profile Analysis Using QSYS2.USER_INFO explains how IBM i security administrators can use SQL services to audit and analyze user profiles across the system.
The document focuses on the QSYS2.USER_INFO view, which provides detailed information about all user profiles defined on an IBM i partition. By combining this view with related services such as QSYS2.GROUP_PROFILE_ENTRIES and SYSTOOLS.AUDIT_JOURNAL_CP, administrators can perform comprehensive security reviews directly through SQL, eliminating the need for traditional green-screen commands and manual profile inspections.
Environment
IBM i versions 7.5 and above
Note: Some sample SQL statements may also run on earlier IBM i releases. When a query is supported on a release prior to IBM i 7.5, the minimum supported release is identified in the query description by the minvrm attribute. This value indicates the earliest IBM i version and release on which the SQL statement is expected to work.
Steps
Overview
QSYS2.USER_INFO is a system-provided SQL view that exposes detailed information about every user profile defined on the IBM i system. Combined with related views such as QSYS2.GROUP_PROFILE_ENTRIES and SYSTOOLS.AUDIT_JOURNAL_CP, it enables security administrators to perform comprehensive user profile audits entirely in SQL — without requiring green-screen commands or manual profile reviews.
This document provides a set of targeted SQL queries designed to surface security risks in user profile configurations. Each query focuses on a specific risk area and includes risk classification, a description of why the condition is significant, and recommended remediation guidance.
Table of Contents
- Key Columns in QSYS2.USER_INFO
- Users with Non-Expiring Passwords
- Users with Special Authorities (*ALLOBJ)
- All Special Authorities by Profile
- Recently Created User Profiles
- User Profile Changes Cross-Referenced with Audit Journal
- Profiles with Default or Known Passwords
- Inactive User Profiles
- Profiles with Unlimited Sign-On Attempts
- Service Accounts and System Profiles Review
- Group Profile Membership Summary
- Consolidated Risk Summary
- Related IBM i Services
- References
Key Columns in QSYS2.USER_INFO
The following columns are referenced throughout this document.
| Column | Description |
|---|---|
AUTHORIZATION_NAME | The user profile name |
STATUS | *ENABLED or *DISABLED |
NO_PASSWORD_INDICATOR | 'YES' = no password set (used for service/batch accounts) |
PASSWORD_EXPIRATION_INTERVAL | SMALLINT: days until expiry; -1 = never expires (*NOMAX); 0 = use QPWDEXPITV |
DAYS_UNTIL_PASSWORD_EXPIRES | Computed days; NULL when password will not expire |
PREVIOUS_SIGNON | Timestamp of the last successful sign-on; NULL if never signed on |
SIGN_ON_ATTEMPTS_NOT_VALID | Consecutive failed sign-on attempts since last success |
MAXIMUM_SIGN_ON_ATTEMPTS | VARCHAR(7): 1–25 = explicit limit per-profile; *SYSVAL = defer to QMAXSIGN system value |
SPECIAL_AUTHORITIES | Blank-separated string of granted special authorities |
GROUP_PROFILE_NAME | Primary group profile |
SUPPLEMENTAL_GROUP_LIST | Additional group memberships |
TEXT_DESCRIPTION | Free-text description field |
USER_CLASS_NAME | *SECOFR, *PGMR, *SYSOPR, *USER, etc. |
PASSWORD_CHANGE_DATE | Timestamp the password was last changed (PWDCHGDAT) |
USER_EXPIRATION_DATE | Timestamp the profile itself expires; NULL = never (USREXPDATE) |
CREATION_TIMESTAMP | Timestamp when the profile was created |
LAST_USED_TIMESTAMP | Date the profile was last used; time portion is always 0 (LASTUSED) |
LIMIT_CAPABILITIES | Whether the user can change their environment |
HOME_DIRECTORY | IFS home directory path |
LOCALE_JOB_ATTRIBUTES | Locale settings |
1. Users with Non-Expiring Passwords
⚠ Risk Level: HIGH
User profiles configured with PASSWORD_EXPIRATION_INTERVAL = -1 (the numeric value that represents *NOMAX) are exempt from the system-wide password expiration policy. This is appropriate for certain service accounts but should not apply to interactive users. Stale passwords on interactive accounts represent a persistent credential exposure risk.
SQL
Sample Output
| AUTHORIZATION_NAME | STATUS | USER_CLASS_NAME | NO_PASSWORD_INDICATOR | PASSWORD_EXPIRATION_INTERVAL | PASSWORD_CHANGE_DATE | DAYS_SINCE_CHANGE | PREVIOUS_SIGNON | GROUP_PROFILE_NAME | SPECIAL_AUTHORITIES | TEXT_DESCRIPTION |
|---|---|---|---|---|---|---|---|---|---|---|
| JSMITH | *ENABLED | *PGMR | NO | *NOMAX | 2021-03-14 | 1303 | 2025-10-01 08:42:11 | DEVTEAM | *NONE | Jane Smith - Development |
| DBADMIN | *ENABLED | *SECOFR | NO | *NOMAX | 2022-11-30 | 696 | 2025-09-28 14:05:33 | *NONE | *ALLOBJ *SECADM | Database Administrator |
| SVCBATCH | *ENABLED | *USER | NO | *NOMAX | 2023-06-01 | 493 | 2025-08-15 02:00:00 | BATCHGRP | *JOBCTL | Nightly batch service |
| RLOPEZ | *ENABLED | *PGMR | NO | *NOMAX | 2024-01-10 | 270 | 2025-09-30 09:17:44 | DEVTEAM | *NONE | Ricardo Lopez - Development |
| APPADMIN | *ENABLED | *SYSOPR | NO | *NOMAX | 2024-08-22 | 46 | 2025-10-06 11:30:09 | OPSGRP | *JOBCTL *SPLCTL | Application Admin |
DAYS_SINCE_PASSWORD_CHANGE values are relative to run date 2025-10-07. A value of 9999 indicates PASSWORD_CHANGE_DATE is NULL.Interpretation
- Profiles where
NO_PASSWORD_INDICATOR = 'NO'andPASSWORD_EXPIRATION_INTERVAL = -1are interactive accounts that will never be prompted to change their password. - High
DAYS_SINCE_PASSWORD_CHANGEvalues (> 365) indicate credentials that have been static for an extended period. NO_PASSWORD_INDICATOR = 'YES'accounts are legitimate service accounts using token or certificate authentication and are excluded.
Recommended Actions
- Set
PASSWORD_EXPIRATION_INTERVALto a value aligned with policy (typically 30–90 days) for all interactive accounts. - Use
CHGUSRPRF USRPRF(<name>) PWDEXPITV(<days>)to correct non-compliant profiles. - Document any exceptions where
*NOMAX(-1) is legitimately required.
2. Users with Special Authorities (*ALLOBJ)
⚠ Risk Level: CRITICAL
Profiles that hold *ALLOBJ special authority — directly assigned or inherited through a group profile — can access any object on the system regardless of object-level permissions. This is among the most powerful authorities in IBM i and must be strictly limited to named administrators.
SQL
Sample Output
| AUTHORIZATION_NAME | STATUS | NO_PASSWORD_INDICATOR | PREVIOUS_SIGNON | SPECIAL_AUTHORITIES | GROUP_PROFILE_NAME | USER_CLASS_NAME | TEXT_DESCRIPTION | ALLOBJ_SOURCE |
|---|---|---|---|---|---|---|---|---|
| DBADMIN | *ENABLED | NO | 2025-09-28 14:05:33 | *ALLOBJ *SECADM | *NONE | *SECOFR | Database Administrator | DIRECT |
| QSECOFR | *ENABLED | NO | 2025-10-06 22:14:05 | *ALLOBJ *SECADM *JOBCTL *SPLCTL *SAVSYS *SERVICE *AUDIT *IOSYSCFG | *NONE | *SECOFR | Security Officer | DIRECT |
| SVCAPI | *ENABLED | YES | 2025-10-01 02:00:00 | *ALLOBJ *JOBCTL | *NONE | *USER | API Integration Service | DIRECT |
| JSMITH | *ENABLED | NO | 2025-10-01 08:42:11 | *NONE | POWERGRP | *PGMR | Jane Smith - Development | VIA GROUP PROFILE |
| RLOPEZ | *ENABLED | NO | 2025-09-30 09:17:44 | *NONE | POWERGRP | *PGMR | Ricardo Lopez - Development | VIA GROUP PROFILE |
SVCAPI is a service account (NO_PASSWORD_INDICATOR = YES) holding *ALLOBJ directly — requires documented justification. JSMITH and RLOPEZ have no direct special authorities but inherit *ALLOBJ through POWERGRP.Interpretation
- DIRECT — the profile was explicitly granted
*ALLOBJ. - VIA GROUP PROFILE — the profile does not hold
*ALLOBJdirectly but is a member of a group that does. - Profiles with
STATUS = '*DISABLED'are lower immediate risk but should still be cleaned up. - Profiles with
NO_PASSWORD_INDICATOR = 'YES'that have*ALLOBJare service accounts with full system authority — heightened scrutiny required.
Recommended Actions
- Confirm each listed profile has a documented business justification for
*ALLOBJ. - Remove
*ALLOBJfrom any profile that does not require it:CHGUSRPRF USRPRF(<name>) SPCAUT(*USRCLS). - Enforce dual-control for sign-on of
*ALLOBJaccounts.
3. All Special Authorities by Profile
⚠ Risk Level: HIGH
Beyond *ALLOBJ, IBM i has several other special authorities that grant significant system-level access. This query provides a full inventory of all profiles holding any special authority.
Special Authorities Reference
| Authority | Description |
|---|---|
*ALLOBJ | Access to all objects on the system |
*SECADM | Manage user profiles and security |
*JOBCTL | Control jobs and subsystems |
*SPLCTL | Control spool files of any user |
*SAVSYS | Save and restore the system |
*SERVICE | Perform hardware service functions |
*AUDIT | Manage audit journal settings |
*IOSYSCFG | Configure I/O and communications |
SQL
Recommended Actions
- Compare results against an approved privileged-user inventory.
- Investigate any profiles not in the approved list and remove authorities not needed.
- Pay particular attention to
*SECADM(can create/modify other users) and*AUDIT(can disable auditing).
4. Recently Created User Profiles
ⓘ Risk Level: MEDIUM
QSYS2.USER_INFO does not expose a "last modified" timestamp for profile changes — that information lives exclusively in the security audit journal (see Query 5). However, the view does provide CREATION_TIMESTAMP, which reliably identifies newly provisioned profiles.
SQL
Sample Output
| AUTHORIZATION_NAME | STATUS | USER_CLASS_NAME | CREATION_TIMESTAMP | DAYS_SINCE_CREATION | USER_CREATOR | SPECIAL_AUTHORITIES | GROUP_PROFILE_NAME | NO_PASSWORD_INDICATOR | PASSWORD_EXPIRATION_INTERVAL | USER_EXPIRATION_DATE | TEXT_DESCRIPTION |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CONTRACTOR1 | *ENABLED | *USER | 2025-09-30 10:14:22 | 7 | QSECOFR | *NONE | CONTGRP | NO | 90 | 2025-12-31 | External Contractor - Project Alpha |
| SVCREPORT | *ENABLED | *USER | 2025-09-25 08:30:05 | 12 | DBADMIN | *NONE | BATCHGRP | YES | 90 | — | Reporting Service Account |
| TEMPAUDIT | *ENABLED | *USER | 2025-09-22 14:55:18 | 15 | QSECOFR | *AUDIT | *NONE | NO | 30 | 2025-10-31 | Temp auditor - external review |
| JPEREZ | *ENABLED | *PGMR | 2025-09-18 09:02:44 | 19 | QSECOFR | *NONE | DEVTEAM | NO | 90 | — | Jorge Perez - New Developer |
| POWERUSER1 | *ENABLED | *SYSOPR | 2025-09-10 16:47:33 | 27 | DBADMIN | *ALLOBJ *JOBCTL | *NONE | NO | *NOMAX | — | Elevated ops account |
POWERUSER1 warrants immediate attention — created by a non-security-officer (DBADMIN), granted *ALLOBJ and *JOBCTL, with a non-expiring password and no expiration date. SVCREPORT was also created by DBADMIN — confirm as an authorized provisioning path. CONTRACTOR1 and TEMPAUDIT have USER_EXPIRATION_DATE set — good practice for time-limited access.Notes
CREATION_TIMESTAMPis the authoritative creation date for the profile object.USER_CREATORidentifies which profile ranCRTUSRPRF— useful for confirming authorized provisioning.- To detect modifications to existing profiles, use Query 5 which cross-references the security audit journal CP entries.
5. User Profile Changes Cross-Referenced with Audit Journal
⚠ Risk Level: HIGH
SYSTOOLS.AUDIT_JOURNAL_CP is a SQL table function that surfaces Class CP (User Profile Changed) entries directly from the IBM i security audit journal (QAUDJRN). Joining it with QSYS2.USER_INFO provides a complete picture: which profiles were changed, when, by whom, and what the profile currently looks like.
*SECURITY. Verify with DSPSYSVAL SYSVAL(QAUDLVL).SQL
Sample Output
| ENTRY_TIMESTAMP | CHANGED_BY | CHANGED_PROFILE | COMMAND_TYPE | NEW_STATUS | NEW_USER_CLASS | NEW_SPCAUT | PREV_SPCAUT | PASSWORD_CHANGED | NEW_GROUP_PROFILE | CURRENT_STATUS | CURRENT_SPCAUT | CURRENT_CLASS | CURRENT_PWD_EXPIRY |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-10-06 22:31:05 | QSECOFR | POWERUSER1 | CHG | — | — | *ALLOBJ *JOBCTL | *JOBCTL | — | — | *ENABLED | *ALLOBJ *JOBCTL | *SYSOPR | *NOMAX |
| 2025-10-05 14:12:44 | DBADMIN | SVCREPORT | CHG | — | — | — | — | YES | — | *ENABLED | *NONE | *USER | *SYSVAL |
| 2025-10-03 08:47:20 | QSECOFR | JSMITH | CHG | — | — | — | — | — | POWERGRP | *ENABLED | *NONE | *PGMR | 90 |
| 2025-10-01 17:03:11 | DBADMIN | RLOPEZ | CHG | — | *SYSOPR | — | — | — | — | *ENABLED | *NONE | *SYSOPR | 90 |
| 2025-09-29 23:58:02 | QSYS | CONTRACTOR1 | CHG | *DISABLED | — | — | — | — | — | *DISABLED | *NONE | *USER | 90 |
null values (shown as —) mean that attribute was not modified in that journal entry. Row 1: POWERUSER1 gained *ALLOBJ (PREV: *JOBCTL → NEW: *ALLOBJ *JOBCTL). Row 4: RLOPEZ promoted to *SYSOPR by DBADMIN — a change that should come from a security officer. Row 5: CONTRACTOR1 disabled automatically by QSYS at profile expiration.Interpretation
CHANGED_BYreveals who made the change. Non-security-officers modifying profiles is a red flag.COMMAND_TYPE:CHG=CHGUSRPRF;CRT=CRTUSRPRF;DST= DST password reset;RPA= Reset Profile Attributes API;RST=RSTUSRPRF;SQL= Db2 routing procedure.- Compare
NEW_SPCAUTvsPREV_SPCAUTto identify special authority additions or removals. - A pattern of changes outside of normal business hours warrants investigation.
6. Profiles with Default or Known Passwords
⚠ Risk Level: CRITICAL
IBM i ships with a set of IBM-supplied user profiles that historically have well-known default passwords. Any enabled IBM-supplied profile with a password unchanged since creation is a high-value attack target.
Profiles where NO_PASSWORD_INDICATOR = 'YES' have *NONE set as their password. They cannot be used to sign on interactively and are excluded from results.
SQL
Recommended Actions
- Immediately change the password for any enabled IBM-supplied profile, especially
QSECOFR. - Disable IBM-supplied profiles not required for system function:
CHGUSRPRF USRPRF(<name>) STATUS(*DISABLED). - For
QSECOFR, useCHGUSRPRF USRPRF(QSECOFR) PASSWORD(<complex_password>)and document in a sealed-envelope procedure.
7. Inactive User Profiles
⚠ Risk Level: HIGH
Profiles that have not been used for an extended period (e.g., 90 days) represent stale accounts that may belong to former employees, contractors, or decommissioned services.
SQL
Notes
- IBM-supplied profiles (beginning with
Q) are excluded — they are not expected to sign on interactively. PREVIOUS_SIGNON IS NULLindicates the profile was created but never used for an interactive sign-on — always investigate.PREVIOUS_SIGNONonly tracks interactive sign-ons. A profile with no sign-on history may still be actively used internally — for example, as a job owner, batch job user, or adopted authority profile. Always cross-check against theLAST_USED_TIMESTAMPcolumn inQSYS2.USER_INFO(or the Last used field onDSPUSRPRF). A profile withPREVIOUS_SIGNON IS NULLbut a recentLAST_USED_TIMESTAMPis in active internal use and should not be disabled without further investigation.
*DISABLED prevents interactive sign-on only. A *DISABLED profile can still be used for batch processing — for example, as the user profile specified on a submitted job (SBMJOB USER(<name>)), as a job owner, or under adopted authority. Verify the profile is not referenced in any scheduled jobs, job descriptions, or application configurations before disabling it.Recommended Actions
- Disable profiles inactive for more than 90 days unless a documented exception exists:
CHGUSRPRF USRPRF(<name>) STATUS(*DISABLED) - For time-limited accounts, set a profile expiration date at provisioning time:
CHGUSRPRF USRPRF(<name>) USREXPDATE(<mm/dd/yyyy>) USREXPITV(*USREXPDATE) - Delete profiles inactive for more than 180 days that have no object ownership.
- Set
USREXPDATEat the time of provisioning for any account with a known end date.
8. Profiles with Unlimited Sign-On Attempts
⚠ Risk Level: HIGH
The MAXIMUM_SIGN_ON_ATTEMPTS column controls how many consecutive failed sign-ons are allowed before a profile is disabled. The value *SYSVAL means the profile defers to the system value QMAXSIGN, while an explicit numeric value (1–25) overrides it. Profiles set to a very high limit are vulnerable to brute-force attacks.
SQL
Sample Output
| AUTHORIZATION_NAME | STATUS | USER_CLASS_NAME | MAXIMUM_SIGN_ON_ATTEMPTS | SIGN_ON_ATTEMPTS_NOT_VALID | SPECIAL_AUTHORITIES | NO_PASSWORD_INDICATOR | PREVIOUS_SIGNON | TEXT_DESCRIPTION |
|---|---|---|---|---|---|---|---|---|
| DBADMIN | *ENABLED | *SECOFR | *SYSVAL | 3 | *ALLOBJ *SECADM | NO | 2025-10-06 14:22:10 | Database Administrator |
| JSMITH | *ENABLED | *PGMR | *SYSVAL | 2 | *NONE | NO | 2025-10-07 08:15:44 | Jane Smith - Development |
| APPADMIN | *ENABLED | *SYSOPR | 10 | 0 | *JOBCTL *SPLCTL | NO | 2025-10-05 11:30:09 | Application Admin |
| RLOPEZ | *ENABLED | *PGMR | *SYSVAL | 0 | *NONE | NO | 2025-09-30 09:17:44 | Ricardo Lopez - Development |
| TEMPAUDIT | *ENABLED | *USER | 25 | 0 | *AUDIT | NO | 2025-10-01 09:00:00 | Temp auditor - external review |
SIGN_ON_ATTEMPTS_NOT_VALID descending. DBADMIN with 3 failed attempts and *ALLOBJ *SECADM is highest priority — privileged account potentially under brute-force attack. APPADMIN and TEMPAUDIT have explicit numeric overrides (10 and 25) that bypass QMAXSIGN and must be reset.Recommended Actions
- Ensure
QMAXSIGNis set to 3–5 attempts system-wide:CHGSYSVAL SYSVAL(QMAXSIGN) VALUE(3). - Profiles set to
*SYSVALwill automatically respectQMAXSIGN— no profile-level change needed once the system value is correct. - Reset any profile with an explicit override higher than 5:
CHGUSRPRF USRPRF(<name>) MAXSIGN(*SYSVAL). - Monitor
SIGN_ON_ATTEMPTS_NOT_VALID > 0for profiles that may be under active password-guessing attack.
9. Service Accounts and System Profiles Review
ⓘ Risk Level: MEDIUM
Service accounts — profiles used by applications, batch jobs, or middleware — often require elevated authorities and non-expiring credentials. However, they can accumulate excessive permissions over time. This query surfaces profiles that exhibit service-account characteristics and flags those with authorities beyond what is typically needed.
SQL
10. Group Profile Membership Summary
ⓘ Risk Level: MEDIUM
Group profiles allow IBM i to manage authority collectively. A user who is a member of a powerful group profile inherits its authorities. This query provides an inventory of all group profile memberships, useful for identifying users with indirect elevated access.
SQL
Sample Output
| GROUP_PROFILE_NAME | GROUP_SPECIAL_AUTHORITIES | GROUP_CLASS | GROUP_STATUS | MEMBER_PROFILE | MEMBER_STATUS | MEMBER_CLASS | MEMBER_OWN_SPCAUT | MEMBER_LAST_SIGNON | MEMBER_DESCRIPTION |
|---|---|---|---|---|---|---|---|---|---|
| POWERGRP | *ALLOBJ *JOBCTL | *SECOFR | *ENABLED | DBADMIN | *ENABLED | *SECOFR | *ALLOBJ *SECADM | 2025-10-06 14:22:10 | Database Administrator |
| POWERGRP | *ALLOBJ *JOBCTL | *SECOFR | *ENABLED | JSMITH | *ENABLED | *PGMR | *NONE | 2025-10-07 08:15:44 | Jane Smith - Development |
| POWERGRP | *ALLOBJ *JOBCTL | *SECOFR | *ENABLED | RLOPEZ | *ENABLED | *PGMR | *NONE | 2025-09-30 09:17:44 | Ricardo Lopez - Development |
| BATCHGRP | *JOBCTL *SAVSYS | *SYSOPR | *ENABLED | SVCBATCH | *ENABLED | *USER | *NONE | 2025-10-06 02:00:00 | Nightly batch service |
| BATCHGRP | *JOBCTL *SAVSYS | *SYSOPR | *ENABLED | SVCREPORT | *ENABLED | *USER | *NONE | 2025-10-04 02:00:00 | Reporting Service Account |
JSMITH and RLOPEZ have no direct special authorities (MEMBER_OWN_SPCAUT = *NONE) but inherit *ALLOBJ *JOBCTL through POWERGRP — a common finding easy to miss when reviewing profiles in isolation. DBADMIN is doubly privileged: direct *ALLOBJ *SECADM plus group inheritance. BATCHGRP grants *JOBCTL *SAVSYS to two service accounts — confirm as the minimum required authority.11. Consolidated Risk Summary
ⓘ Risk Level: INFORMATIONAL
This summary query provides a single-view risk assessment of all non-IBM-supplied enabled user profiles. It combines multiple risk indicators into a composite score to prioritize follow-up actions. Use this as a daily or weekly administrative dashboard query.
SQL
Sample Output
| AUTHORIZATION_NAME | STATUS | USER_CLASS_NAME | FLAG_HIGH_SPCAUT | FLAG_NO_PWD_EXPIRY | FLAG_HIGH_MAXSIGN | FLAG_INACTIVE | FLAG_RECENTLY_CREATED | SPECIAL_AUTHORITIES | PWD_EXPIRY_INTERVAL | MAX_SIGNON_ATTEMPTS | PREVIOUS_SIGNON | NO_PWD | GROUP_PROFILE_NAME | TEXT_DESCRIPTION | RISK_TIER |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DBADMIN | *ENABLED | *SECOFR | YES | YES | NO | NO | NO | *ALLOBJ *SECADM | -1 | *SYSVAL | 2025-10-06 14:22:10 | NO | *NONE | Database Administrator | 1 - CRITICAL |
| APPADMIN | *ENABLED | *SYSOPR | NO | NO | YES | NO | NO | *JOBCTL *SPLCTL | 90 | 10 | 2025-10-05 11:30:09 | NO | OPSGRP | Application Admin | 4 - HIGH (Weak Lockout) |
| OLDUSER | *ENABLED | *USER | NO | NO | NO | YES | NO | *NONE | 90 | *SYSVAL | 2025-05-12 08:00:00 | NO | DEVTEAM | Former contractor | 5 - MEDIUM (Inactive) |
| CONTRACTOR1 | *ENABLED | *USER | NO | NO | NO | NO | YES | *NONE | 90 | *SYSVAL | 2025-10-02 09:15:00 | NO | CONTGRP | External Contractor - Project Alpha | 6 - REVIEW (Recently Created) |
| JSMITH | *ENABLED | *PGMR | NO | NO | NO | NO | NO | *NONE | 90 | *SYSVAL | 2025-10-07 08:15:44 | NO | DEVTEAM | Jane Smith - Development | 7 - LOW |
DBADMIN is Tier 1: combines *ALLOBJ *SECADM with a non-expiring password (-1). APPADMIN is Tier 4: MAXIMUM_SIGN_ON_ATTEMPTS = 10 overrides QMAXSIGN. OLDUSER last signed on > 90 days ago. CONTRACTOR1 was created 7 days prior. JSMITH has no flags.Interpreting the Risk Tiers
| Tier | Meaning | Recommended Action |
|---|---|---|
| 1 - CRITICAL | Has *ALLOBJ/*SECADM and PASSWORD_EXPIRATION_INTERVAL = -1 | Immediate review and remediation |
| 2 - HIGH (Elevated Authority) | Holds *ALLOBJ or *SECADM | Confirm business justification; enforce password expiry |
| 3 - HIGH (No Password Expiry) | Interactive account, PASSWORD_EXPIRATION_INTERVAL = -1 | Set PWDEXPITV to policy value, e.g., CHGUSRPRF ... PWDEXPITV(90) |
| 4 - HIGH (Weak Lockout Policy) | MAXIMUM_SIGN_ON_ATTEMPTS override exceeds 5 | Reset to *SYSVAL and verify QMAXSIGN ≤ 5 |
| 5 - MEDIUM (Inactive) | No sign-on in 90+ days | Disable or delete with manager approval |
| 6 - REVIEW (Recently Created) | Profile created in last 30 days | Verify provisioning was authorized |
| 7 - LOW | No flags raised | No immediate action required |
Related IBM i Services
| Service | Type | Description |
|---|---|---|
QSYS2.USER_INFO | View | Current user profile attributes |
QSYS2.GROUP_PROFILE_ENTRIES | View | Group profile membership |
SYSTOOLS.AUDIT_JOURNAL_CP() | Table Function | User profile change audit journal entries (CP class) |
QSYS2.DISPLAY_JOURNAL() | Table Function | General-purpose audit journal access |
QSYS2.SYSTEM_VALUE_INFO | View | System value settings |
References
Document Location
Worldwide
Was this topic helpful?
Document Information
Modified date:
25 August 2026
UID
ibm17284968