Information
The SYSCAT.ROLES contains all roles available in the database. It is recommended that the PUBLIC role be restricted from accessing this view.
PUBLIC should not have access to see all the roles because this could be used as a point of exploit.
Solution
Perform the following to revoke access from PUBLIC.
1. Connect to the DB2 database.
db2 => connect to $DB2INSTANCE user $USERNAME using $PASSWORD
2. Run the following command from the DB2 command window:
db2 => REVOKE SELECT ON SYSCAT.ROLES FROM PUBLIC