Domanda

Questa domanda non riguarda la progettazione di database del sistema RBAC in sé, ma piuttosto come utilizzare questo database in collaborazione con la banca dati specifica applicazione quando l'applicazione web permette agli utenti di inviare contenuti.

Così com'è il mio RBAC dovrebbe facilmente lavorare per una semplice applicazione di amministrazione di back-end, dove il personale può aggiungere e aggiornare i record - un negozio online per esempio non hanno in genere contenuti inseriti dall'utente. I due database possono rimanere separati. Tuttavia, io non sono sicuro di come avrei potuto riutilizzare il mio disegno RBAC con un sito web / applicazione che permette agli utenti di inviare contenuti. Avrei due tabelle utente in due database che richiedono autorizzazioni per l'aggiunta / aggiornamento dei record.

  1. faccio a incorporare il mio database RBAC nel database del sito e condivido la tabella utenti?

  2. Devo mantenere i due separati?

  3. Fare qualcosa di diverso?

Se l'opzione 2 do I:

  • (A) duplicare gli utenti del database del sito nella tabella utente RBAC

  • (B) creare una relazione alla tabella utente nel database sito web

  • (C) creare un nuovo sistema RBAC all'interno del database del sito per gli utenti del sito e hanno la RBAC separato per gli utenti di admin?

A sembra male come sto duplicazione di dati, ma sembra abbastanza semplice da implementare. B sembra che sarà difficile creare un rapporto a due tabelle utente separati. C è anche la duplicazione, ma posso pesantemente personalizzare questo RBAC senza impattare il RBAC "admin".

Io sono fondamentalmente voglia di fare il mio sistema RBAC come riutilizzabile come possibili e con utenti specifici di applicazioni in grado di inviare contenuti sta facendo le cose un po 'difficile da ottenere la mia testa intorno.

Questo piccolo sistema RBAC mio è principalmente un modo per me di imparare quindi per favore non generico "si dovrebbe usare framework x / y / z". Usando un termine che ho scoperto di recente, mi sono un po 'un nerd ruota e piace reinventare ogni volta Sono curioso! :)

Userò MySQL e PHP per i miei siti, ma questo non dovrebbe importare in quanto è la progettazione di database che sto chiedendo qui.

Se la mia domanda non è chiara per favore fatemelo sapere e lo farò a spiegare ulteriormente. Grazie a tutti per il vostro tempo.

È stato utile?

Soluzione

Non conoscendo la vostra piena attuazione, io sono inclinato verso la vostra prima soluzione e solo utilizzando una tabella utente. L'applicazione online può quindi interrogare il RBAC per determinare se i privledges utente. Quello che non è chiaro per me è come sarebbero necessari molti attribultes applicazioni e dove sarebbero stati conservati. Se si dispone di attribultes utente che devono essere memorizzati nel database quindi è possibile creare una tabella utente nell'applicazione con un riferimento chiave esterna alla RBAC per determinare privledges di accesso senza memorizzare i dati in 2 posti. Come complesso questo sarebbe dipende da quanti luoghi diversi è possibile aggiungere e aggiornare gli utenti ei loro attributi. La struttura fisica del database è molto dipendente da regole di business e l'architettura, ma la vostra progettazione logica sarebbe quella di mantenere i dati in una tabella.

Altri suggerimenti

si prega di dare un'occhiata a questo sito a grana fine Role Based sistema di controllo di accesso (RBAC) http://sqlrecipes.com/forum/threads/fine-grained-role-based-access-control-rbac-system.3/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top