IBM Db2
TMA-DB2-4.5.3
Review System Tablespaces
Description
System tablespaces store all system object data within that database. It is recommended that system tablespaces are used to store system data only and not user data. Only certain table spaces can be used to hold user tables. Counts user tables stored in SYSTOOLSPACE/SYSTOOLSTMPSPACE; 0 is required. Database-level check: set DB2DBDFT to the database name to audit (the rule connects to it with the instance owner's credentials and fails when DB2DBDFT is unset). Run as the instance owner (or with sqllib/db2profile sourced) so the db2 CLP reads this instance's configuration.
How it is checked
Audit method: SQL query
db="${DB2DBDFT:?set DB2DBDFT to the database to audit}"; db2 connect to "$db" >/dev/null || exit 1; db2 -x "select count(*) from syscat.tables where tabschema not in ('SYSIBM','SYSTOOLS') and tbspace in ('SYSTOOLSPACE','SYSTOOLSTMPSPACE')"; rc=$?; db2 connect reset >/dev/null 2>&1; db2 terminate >/dev/null 2>&1; exit $rc- Expected output
0
How it is fixed
Fix method: Guidance or infrastructure patch
1. Connect to the Db2 database. db2 => connect to <dbname> 2. Review the system tablespaces to identify any user data objects within them. 3. Drop, migrate, or otherwise remove all user data objects (tables, schemas, etc.) from within the system tablespaces. 4. Revoke write access for the system tablespaces from all users. 5 Authentication Considerations
Properties
- Operating systems
- Any
- Tags
- db2databaseprivileges
- Reference
- CIS IBM Db2 12.1 Benchmark v1.0.0 - 4.5.3 Review System Tablespaces
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target db2