Oracle
 sql >> Database >  >> RDS >> Oracle

Migliore pratica di progettazione del database delle autorizzazioni del ruolo utente?

Come ha scritto krokodilko nel suo commento, dipende dal livello di flessibilità di cui hai bisogno.
Ho implementato autorizzazioni basate sui ruoli per uno dei miei clienti come segue:

  1. Utente (ID utente (PK), nome utente (univoco), password (saltato e hash! ), nome, cognome, telefono ecc')
  2. Ruolo (ID ruolo (PK), nome ruolo (univoco), descrizione ruolo)
  3. Autorizzazione (ID autorizzazione (PK), nome autorizzazione (univoco)) - le schede/schermate/azioni vanno qui
  4. Utente a ruolo (ID utente, ID ruolo) - PK è la combinazione di entrambe le colonne
  5. Ruolo per l'autorizzazione (ID ruolo, ID autorizzazione) - PK è una combinazione di entrambe le colonne

Ma la mia esigenza era quella di essere il più flessibile possibile, ed è un sistema che è ancora in crescita (6 anni e oltre).

Immagino che molte applicazioni possano avere l'utente nel ruolo di una relazione uno a molti, invece di molti a molti come nel mio caso, ma non andrei a codificare i permessi o a dare un ruolo ai permessi in nessuna applicazione.

Ulteriori spiegazioni:Progettazione di database di sicurezza basata sui ruoli su Che cosa # so?