GRANT  vs  RacF-Profil




Die interne Berechtigungsverwaltung von DB2 for z/OS rückt immer weiter in den Hintergrund. Früher oder später wird sie vollständig verschwinden und die Berechtigungen werden ausschließlich durch externe Systeme wie RacF verwaltet.
Damit nicht alle Berechtigungen mit einem "big bang" umgestellt werden müssen, ist derzeit ein Mischbetrieb aus DB2-internen Berechtigungen und RacF-Profilen möglich. Dabei gibt es allerdings die eine oder andere Fußangel. Existiert für das Objekt ( z.B. Table oder View ) eine RacF-Ressource, so werden ausschließlich im RacF hinterlegte Berechtigungen geprüft. Sogar eine SYSADM-Berechtigung, die mittels GRANT SYSADM TO user; vergeben wurde, findet dann keine Berücksichtigung.
Bei Views ist zu beachten, dass lediglich das Profil in der MDSNTB-Klasse geprüft wird und ein *.SYSADM-Recht in der DSNADM-Klasse, eine *.*.DBADM -Berechtigung ist jedoch nicht ausreichend.
Bei updateable Views haben sich die zugrunde liegenden Profile von V9 nach V10 ( bzw. bei V9 mit dem PTF-Stand ) geändert.
Weiterhin ist zu beachten, dass ein gültiges Statement im dynamic sql cache weiterhin gültig und damit ausführbar bleibt, selbst wenn sich relevante RacF-Profile geändert haben (und dadurch z.B. das Leserecht genommen wurde). Hier muss das Statement im cache zusätzlich invalidiert werden. Dieses Verhalten ändert sich allerdings mit Version 11. Dann erfolgt bei Änderungen eine Rückmeldung von RacF an DB2.

Ist die RacF Option MLS nicht aktiv, dann genügt es, wenn der User ein Leserecht ( READ ) auf das geprüfte RacF-Profil besitzt, im anderen Fall bnenötigt er je nach Aktion READ oder UPDATE Berechtigung.

Nachfolgend eine Auflistung der möglichen DB2 Berechtigungen und die dazu korrespondierenden RacF-Profile.


bufferpool
privilegeRacF-profileRacF-class
USEdb2subsystem.bufferpool.USEMDSNBP oder GDSNBP

collection
privilegeRacF-profileRacF-class
PACKADMdb2subsystem.collection.PACKADMDSNADM
CREATE INdb2subsystem.collection.CREATEINMDSNCL oder GDSNCL

database
privilegeRacF-profileRacF-class
CREATETABdb2subsystem.database.CREATETABMDSNDB oder GDSNDB
CREATETSdb2subsystem.database.CREATETSMDSNDB oder GDSNDB
DBADMdb2subsystem.database.DBADMDSNADM
DBCTRLdb2subsystem.database.DBCTRLDSNADM
DBMAINTdb2subsystem.database.DBMAINTDSNADM
DISPLAYDBdb2subsystem.database.DISPLAYDBMDSNDB oder GDSNDB
DROPdb2subsystem.database.DROPMDSNDB oder GDSNDB
IMAGCOPYdb2subsystem.database.IMAGCOPYMDSNDB oder GDSNDB
LOADdb2subsystem.database.LOADMDSNDB oder GDSNDB
RECOVERDBdb2subsystem.database.RECOVERDBMDSNDB oder GDSNDB
REORGdb2subsystem.database.REORGMDSNDB oder GDSNDB
REPAIRdb2subsystem.database.REPAIRMDSNDB oder GDSNDB
STARTDBdb2subsystem.database.STARTDBMDSNDB oder GDSNDB
STATSdb2subsystem.database.STATSMDSNDB oder GDSNDB
STOPDBdb2subsystem.database.STOPDBMDSNDB oder GDSNDB

global variable
privilegeRacF-profileRacF-class
READdb2subsystem.schema.variablename.READMDSNGV oder GDSNGV
WRITEdb2subsystem.schema.variablename.WRITEMDSNGV oder GDSNGV

JAR
privilegeRacF-profileRacF-class
USAGE ONdb2subsystem.schema.jarname.USAGEMDSNJR oder GDSNJR

package
privilegeRacF-profileRacF-class
BINDdb2subsystem.collection.packagename.BINDMDSNPK oder GDSNPK
COPYdb2subsystem.collection.packagename.COPYMDSNPK oder GDSNPK
EXECUTE / RUNdb2subsystem.collection.packagename.EXECUTEMDSNPK oder GDSNPK

plan
privilegeRacF-profileRacF-class
BINDdb2subsystem.planname.BINDMDSNPN oder GDSNPN
EXECUTEdb2subsystem.planname.EXECUTEMDSNPN oder GDSNPN

schema
privilegeRacF-profileRacF-class
ALTERINdb2subsystem.schema.objectname.ALTERINMDSNSC oder GDSNSC
CREATEINdb2subsystem.schema.CREATEINMDSNSC oder GDSNSC
DROPINdb2subsystem.schema.objectname.DROPINMDSNSC oder GDSNSC

sequence
privilegeRacF-profileRacF-class
ALTERdb2subsystem.schema.objectname.ALTERIN oder
db2subsystem.schema.sequencename.ALTER
MDSNSC oder GDSNSC
MDSNSQ oder GDSNSQ
SELECT / USAGEdb2subsystem.schema.sequencename.USAGEMDSNSQ oder GDSNSQ

storagegroup
privilegeRacF-profileRacF-class
USEdb2subsystem.storagegroup.USEMDSNSG oder GDSNSG

stored procedure
privilegeRacF-profileRacF-class
DISPLAYdb2subsystem.schema.procedurename.DISPLAYMDSNSP oder GDSNSP
EXECUTEdb2subsystem.schema.procedurename.EXECUTEMDSNSP oder GDSNSP

systemprivilegien
privilegeRacF-profileRacF-class
ACCESSCTRLdb2subsystem.ACCESSCTRLDSNADM
ARCHIVEdb2subsystem.ARCHIVEMDSNSM oder GDSNSM
BINDADDdb2subsystem.BINDADDMDSNSM oder GDSNSM
BINDAGENTdb2subsystem.owner.BINDAGENTMDSNSM oder GDSNSM
BSDS
(RECOVER BSDS)
db2subsystem.BSDSMDSNSM oder GDSNSM
CREATEALIASdb2subsystem.CREATEALIASMDSNSM oder GDSNSM
CREATEDBAdb2subsystem.CREATEDBAMDSNSM oder GDSNSM
CREATESGdb2subsystem.CREATESGMDSNSM oder GDSNSM
CREATETMTABdb2subsystem.CREATETMTABMDSNSM oder GDSNSM
CREATE SECURE OBJECTdb2subsystem.CREATESECUREOBJECTMDSNSM oder GDSNSM
DATAACCESSdb2subsystem.DATAACCESSDSNADM
DEBUG SESSIONdb2subsystem.DEBUGSESSIONMDSNSM oder GDSNSM
DISPLAYdb2subsystem.DISPLAYMDSNSM oder GDSNSM
EXPLAINdb2subsystem.EXPLAINMDSNSM oder GDSNSM
MONITOR1db2subsystem.MONITOR1MDSNSM oder GDSNSM
MONITOR2db2subsystem.MONITOR2MDSNSM oder GDSNSM
RECOVER
(RECOVER INDOUBT)
db2subsystem.RECOVERMDSNSM oder GDSNSM
SECADMdb2subsystem.SECADMDSNADM
SQLADMdb2subsystem.SQLADMMDSNSM oder GDSNSM
STOPALLdb2subsystem.STOPALLMDSNSM oder GDSNSM
STOSPACEdb2subsystem.STOSPACEMDSNSM oder GDSNSM
SYSADMdb2subsystem.SYSADMDSNADM
SYSCTRLdb2subsystem.SYSCTRLDSNADM
SYSDBADMdb2subsystem.SYSDBADMMDSNSM oder GDSNSM
SYSOPRdb2subsystem.SYSOPRDSNADM
TRACEdb2subsystem.TRACEMDSNSM oder GDSNSM

table
privilegeRacF-profileRacF-class
ALTERdb2subsystem.tablequalifier.tablename.ALTERMDSNTB oder GDSNTB
DELETEdb2subsystem.tablequalifier.tablename.DELETEMDSNTB oder GDSNTB
INDEXdb2subsystem.tablequalifier.tablename.INDEXMDSNTB oder GDSNTB
INSERTdb2subsystem.tablequalifier.tablename.INSERTMDSNTB oder GDSNTB
REFERENCESdb2subsystem.tablequalifier.tablename.REFERENCES
db2subsystem.tablequalifier.tablename.columnname.REFERENCES
MDSNTB oder GDSNTB
SELECTdb2subsystem.tablequalifier.tablename.SELECTMDSNTB oder GDSNTB
TRIGGERdb2subsystem.tablequalifier.tablename.TRIGGERMDSNTB oder GDSNTB
UNLOADdb2subsystem.tablequalifier.tablename.UNLOADMDSNTB oder GDSNTB
UPDATEdb2subsystem.tablequalifier.tablename.UPDATE
db2subsystem.tablequalifier.tablename.columnname.UPDATE
MDSNTB oder GDSNTB

tablespace
privilegeRacF-profileRacF-class
USEdb2subsystem.database.tablespace.USEMDSNTS oder GDSNTS

user defined data types
privilegeRacF-profileRacF-class
USAGEdb2subsystem.schema.typename.USAGEMDSNUT oder GDSNUT

user defined functions
privilegeRacF-profileRacF-class
DISPLAYdb2subsystem.schema.functionname.DISPLAYMDSNUF oder GDSNUF
EXECUTEdb2subsystem.schema.functionname.EXECUTEMDSNUF oder GDSNUF

updateable views
privilegeRacF-profileRacF-class
DELETEdb2subsystem.tablequalifier.tablename.viewqualifier.viewname.DELETEMDSNTB oder GDSNTB
INSERTdb2subsystem.tablequalifier.tablename.viewqualifier.viewname.INSERTMDSNTB oder GDSNTB
SELECTdb2subsystem.viewqualifier.viewname.SELECTMDSNTB oder GDSNTB
UPDATEdb2subsystem.tablequalifier.tablename.viewqualifier.viewname.UPDATE
db2subsystem.tablequalifier.tablename.columnname.viewqualifier.viewname.UPDATE
MDSNTB oder GDSNTB

read-only views
privilegeRacF-profileRacF-class
DELETEdb2subsystem.viewqualifier.viewname.DELETEMDSNTB oder GDSNTB
INSERTdb2subsystem.viewqualifier.viewname.INSERTMDSNTB oder GDSNTB
SELECTdb2subsystem.viewqualifier.viewname.SELECTMDSNTB oder GDSNTB
UPDATEdb2subsystem.viewqualifier.viewname.UPDATE
db2subsystem.viewqualifier.viewname.columnname.UPDATE
MDSNTB oder GDSNTB



Zurück zu DB2 Home Impressum / Datenschutz