LISTDSD
Shows the rule that protects a dataset, and who may use it.
Also written LD
Why it matters. When someone says they can't open a file, LISTDSD tells you which rule said no.
Syntax
{LISTDSD | LD} [DATASET('name' ...) | ID(name ...) | PREFIX(string ...)] [GENERIC | NOGENERIC] [AUTHUSER | ALL] [HISTORY]- DATASET('name')
- The profile or dataset to look up. DA is the short form. Quote it unless it is your own.
- GENERIC
- Find the generic profile that most closely covers a dataset name.
- AUTHUSER
- Also show the access list: who is permitted and at what level.
- ALL
- Show everything you are allowed to see.
- PREFIX(string)
- List every profile whose name starts with the string.
- ID(name)
- List profiles under a user ID or group. With no operands, LISTDSD uses your own user ID.
Try it LISTDSD
- 1
Show the rule ZBANK.DEV.**, with its access list. The group ZBDEV already has UPDATE on it.
LISTDSD DA('ZBANK.DEV.**') AUTHUSER - 2
Now ask about the real dataset ZBANK.DEV.JCL, with no extra words.
LISTDSD DA('ZBANK.DEV.JCL') - 3
Ask again, and find the rule that covers ZBANK.DEV.JCL.
LISTDSD DA('ZBANK.DEV.JCL') GENERIC AUTHUSER
Remember
- LISTDSD shows the rule, not the dataset.
- AUTHUSER adds the access list.
- A real dataset name needs GENERIC to find the rule that covers it.
The usual mistake
LISTDSD DA('ZBANK.DEV.JCL')
No profile has exactly that name. The rule that covers it is ZBANK.DEV.**, and you need GENERIC to find it.
LISTDSD DA('ZBANK.DEV.JCL') GENERIC
On real z/OS
MF/OS prints the main part of a profile in the real layout. A real profile also shows volumes, creation and last-reference dates, access counts and security level, category and label, which MF/OS leaves out. Real LISTDSD with GENERIC also refreshes the generic profile in your address space; MF/OS has no such step.
Where can I practise LISTDSD?
Right here, at ZedBank. You take a junior job at a simulated bank and use LISTDSD in real work, with Zed beside you. There's nothing to install.
Start at ZedBankRelated
- RACFThe security manager for z/OS, which decides who may sign on, read a dataset, or run a transaction.
- Dataset profileA security rule describing which datasets it covers and who is allowed to do what to them.
- Access levelHow much a user may do to a resource: read it, change it, or control it, with each level including the ones below.
- PERMITThe command that grants or removes a user or group's access to a protected resource.
- DatasetWhat a mainframe calls a file: a named collection of records with a defined structure, rather than a loose stream of bytes.