z/OSintermediate

RACF and Mainframe Security

Understand how RACF controls authentication and authorization for datasets, resources, and transactions on z/OS.

RACF (Resource Access Control Facility) is IBM's security manager for z/OS, controlling who can log in, what datasets and resources they can access, and what level of access (read, update, alter) they're granted — and understanding its core model is expected baseline knowledge for anyone claiming production mainframe experience, since virtually every dataset and CICS transaction access in a real shop passes through it.

RACF is a building's centralized badge access system — instead of every door having its own separate lock and key list, badges are issued to individuals and assigned to groups (departments), and each door (a dataset or transaction) has a policy defining which badge groups and access levels (enter, enter and use equipment, enter and reconfigure the room) are allowed through it.

Key Concepts

1
RACF organizes security around three core building blocks: user profiles (identifying individuals and their default group/attributes), group profiles (collections of users sharing common access needs, letting permissions be granted to a whole group rather than repeated per individual), and resource profiles (defining protection for a dataset, a CICS transaction, a DB2 object, or other protected resource, specifying which users/groups get what access level). Access levels typically follow a hierarchy — NONE, READ, UPDATE, CONTROL, ALTER — each encompassing the privileges of the levels below it.
2
Dataset protection commonly uses generic profiles (patterns with wildcards, like PROD.PAYROLL.**, covering many datasets under one profile) rather than requiring a discrete profile per individual dataset, which is both more maintainable and a common point of confusion for newcomers trying to understand why a specific dataset's access rules aren't where they expected to find them. RACF also protects non-dataset resources through general resource classes (like TCICSTRN for CICS transaction IDs, or specific DB2 object classes), extending the same permission model beyond just datasets.
3
A practical interview scenario is diagnosing an access-denied situation: 'a user gets an ICH408I security violation message trying to access a dataset' — a well-prepared answer walks through checking which RACF profile (generic or discrete) actually covers that dataset, what access level the user's ID or group currently has against it, and that resolving it typically means either requesting an access grant through the shop's security request process or confirming the profile pattern is even the intended one for that dataset naming convention.