Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Beste Datenbankentwurfspraxis für Benutzerrollenberechtigungen?

Wie krokodilko in seinem Kommentar schrieb, hängt es von der Flexibilität ab, die Sie benötigen.
Ich habe rollenbasierte Berechtigungen für einen meiner Kunden wie folgt implementiert:

  1. Benutzer (Benutzer-ID (PK), Benutzername (eindeutig), Passwort (gesalzen und gehasht! ), Vorname, Nachname, Telefon etc')
  2. Rolle (Rollen-ID (PK), Rollenname (eindeutig), Rollenbeschreibung)
  3. Berechtigung (Berechtigungs-ID (PK), Berechtigungsname (eindeutig)) – die Registerkarten / Bildschirme / Aktionen kommen hierher
  4. Benutzer zu Rolle (Benutzer-ID, Rollen-ID) – PK ist beide Spalten kombiniert
  5. Rolle bis Berechtigung (Rollen-ID, Berechtigungs-ID) – PK ist beide Spalten kombiniert

Aber meine Anforderung war, so flexibel wie möglich zu sein, und es ist ein System, das immer noch wächst (6 Jahre und Zählen).

Ich denke, viele Anwendungen können den Benutzer als eine Eins-zu-Viele-Beziehung anstelle einer Viele-zu-Viele-Beziehung haben, aber ich würde Berechtigungen oder Rollen-zu-Berechtigungen in keiner Anwendung fest codieren.

Weitere Erklärung:Rollenbasiertes Sicherheitsdatenbankdesign on Was zum # weiß ich?