4. Datenschicht — DB-Schemas

Ausgangssituation

Auth-Daten lagen ursprünglich in ENIVERSCAFM — der Betriebsmittel-Datenbank. Das war historisch gewachsen: Die Anwendung brauchte Benutzer und Rollen, also kamen sie in die vorhandene Datenbank. Mit der Zeit wurde diese Vermischung zum Problem. Die Backup-Strategie für Betriebsmitteldaten ist eine andere als für Benutzerdaten. Die Replikationsanforderungen sind andere. Und wer ENIVERSCAFM migriert oder umbaut, muss aufpassen, keine Auth-Tabellen zu zerstören.

Die Trennung in ENIVERSSIAM schafft eine saubere Grundlage: Alles, was mit „Wer bist du?“ zu tun hat, lebt in einer Datenbank. Alles, was mit „Was gibt es?“ zu tun hat, lebt in einer anderen. ENIVERSCAFM greift auf ENIVERSSIAM über 13 Synonyme zu — aus Sicht des bestehenden Codes ist nichts geändert, die Tabellen sind über dieselben Namen erreichbar. Aber die eigentlichen Daten liegen an dem Ort, wo sie hingehören.

Das macht die Auth-Schicht unabhängig ersetzbar: Wenn die Authentifizierungsimplementierung in Zukunft geändert werden muss — anderer MFA-Anbieter, anderes Token-Format, externer Identity-Provider — ist das eine Operation an einer einzigen, klar abgegrenzten Datenbank. ENIVERSCAFM und ENIVERSPIMS erfahren davon nichts, solange die Synonym-Schnittstelle erhalten bleibt.

Datenbanken

Die ENIVERS-Plattform gliedert sich in drei thematisch getrennte SQL-Server-Datenbanken. Alle laufen auf derselben Instanz (localhost) und sind über das Gateway.Service als REST-API erreichbar.

Datenbank Vollname Zweck
ENIVERSSIAM System for Identity and Access Management Identity, Auth, Rollen, Berechtigungen, Deployments
ENIVERSCAFM Computer Aided Facility Management Anlagen, Betriebsstätten, Geräte, Gebäude, Rohre, Ressourcen
ENIVERSPIMS Process Information Management System Prozessdaten, Messtechnik, Prüfungen, WIS

ENIVERSSIAM

Enthält alles rund um Identität, Authentifizierung und Systemkonfiguration.

Schema Tabelle Beschreibung
core person Basis-Identität (Name, Position, Aktiv-Flag)
auth user Anmeldedaten, TOTP, Password-Hash
auth role Rollen-Definitionen
auth permission Berechtigungs-Objekte (Resource/Action/Scope)
auth role_permission Rollen-Berechtigungs-Zuordnung
auth user_role User-Rollen-Zuordnung (mit Site-Scope)
auth device Geräte-Sessions, PQ-Keys, Refresh-Tokens
auth server_key Server-seitige ML-DSA/ML-KEM Schlüssel
auth mfa_session TOTP Challenge-Sessions
auth backup_code MFA Backup-Codes
auth known_location Bekannte Standorte (Geo-IP)
auth nonce_cache Replay-Protection Nonces
auth rate_limit_event Rate-Limit Protokoll

Detaildokumentation Auth-Architektur:

ENIVERSCAFM

Computer Aided Facility Management — technische Bestandsdaten.

Synonyme auf ENIVERSSIAM (transparenter Zugriff ohne Code-Änderung):

  • auth.* (13 Synonyme → ENIVERSSIAM.auth.*)
  • hr.person (Synonym → ENIVERSSIAM.core.person)

Eigene Schemas (Auswahl, noch zu konsolidieren):

  • dbo — Legacy-Tabellen aus Migration (Anlagen, Betrieb, Geräte, Personen, Rollen…)
  • audit — Ereignis-Log, PQ-Signaturen
  • settings — User-Präferenzen
  • org — Standorte (org.site)

ENIVERSPIMS

Process Information Management System — noch aufzubauen.

Zukünftige Inhalte aus Migration von:

  • AMED/WIS-Delphi (Prüfplanung, Prüfausführung)
  • TecDB (Rohre, Messtechnik, Anlagentechnik)
  • WIS-Berichte und Messergebnisse

Migration

Details zu Phasen, Quellsystemen, Mapping-Tabellen und SQL-Skripten: 5. Auth-Migration — Legacy-Systeme

Phase Inhalt Status
1 auth.* + core.person: ENIVERSCAFM → ENIVERSSIAM ✓ Abgeschlossen
2 LD-System (ENIVERS tblPerson/tblRolle) → ENIVERSSIAM ✓ Abgeschlossen
3 AMED-Bestandsdaten (Branches, Devices, Facilities) → ENIVERSCAFM Ausstehend
4 ENIVERSPIMS aufbauen; WIS/PROOF/TecDB migrieren Ausstehend
5 ENIVERSASYS aufbauen; Feature-Flags aus ENIVERSCAFM auslagern Ausstehend
Zuletzt geändert: den 05.03.2026 um 23:15