Zum Inhalt springen

AA_PERMISSION

Status: Entwurf · Quelle: Spec-Erweiterung RBAC/ACL · Spec-Kandidat: ja

Zweck

AA_PERMISSION deklariert eine zulässige Aktion (permission_action) auf einem Scope-Typ (acl_scope). AA_ROLE_PERMISSION weist diese Permission einer Rolle zu, optional konkretisiert auf ein einzelnes Scope-Objekt (DDM_ENTITY_TYPE, DDM_ENTITY oder DDM_RELATION_TYPE).

AA_PERMISSION

FeldTypPflichtHinweise
iduuidjaPK
keytextjaFormat ^[a-z][a-z0-9_:.]*$, eindeutig (z. B. DDM_ENTITY.read, DDM_ENTITY_TYPE.manage)
actionmdm.permission_actionjasiehe Wertebereich
scopemdm.acl_scopejabestimmt, gegen welches Scope-Feld in AA_ROLE_PERMISSION validiert wird
descriptiontextnein
is_systembooleanjadefault false. System-Permissions sind unveränderlich
metadatajsonbjadefault '{}'
Audit-Felder

UNIQUE-Constraint (action, scope).

Wertebereich permission_action

read, create, update, archive, restore, soft_delete, hard_delete, relate, unrelate, export, manage_metadata, manage_permissions, read_audit.

AA_ROLE_PERMISSION

FeldTypPflichtHinweise
iduuidjaPK
role_iduuidjaFK → AA_ROLE
permission_iduuidjaFK → AA_PERMISSION
effectmdm.permission_effectjadefault allow
scope_entity_type_iduuidneinPflicht wenn AA_PERMISSION.scope='entity_type'
scope_entity_iduuidneinPflicht wenn AA_PERMISSION.scope='entity'
scope_relation_type_iduuidneinPflicht wenn AA_PERMISSION.scope='relation_type'
metadatajsonbjadefault '{}'
Audit-/Soft-Delete-Felder

Constraints und Trigger

  • role_permission_scope_exclusive_chk: höchstens ein Scope-Feld gesetzt.
  • trg_role_permission_validate_scope: erzwingt Konsistenz zwischen AA_PERMISSION.scope und gesetzten Scope-Feldern (siehe Trigger).
  • uq_role_permission_active: Eindeutigkeit pro Rolle/Permission/Scope unter aktiven Einträgen.

Hinweise

  • effect=deny auf Rollenebene ist erlaubt und sinnvoll für „base role + deny ausnahme” Muster.
  • Service darf is_system=true-Permissions nicht ändern.

Verwandte Dokumente