2009-12-08 12 views
5

Il nostro requisito è qualcosa del genere.Nell'architettura SAAS, come faccio a gestire lo schema db e gli accessi utente MVC per i multi-tenant

Stiamo creando un sito Web multi-tenant in ASP.NET MVC e ogni cliente dovrebbe essere in grado di creare i propri utenti in base ai ruoli utente predefiniti.

Stiamo pensando di creare uno schema per poche tabelle che sarebbe comune per i clienti. In questo modo il cliente può accedere al sistema in base ai propri accessi allo schema e non è necessario modificare alcuna query per servirli tutti.

Ci riferiamo a http://msdn.microsoft.com/en-us/library/aa479086.aspx Database condiviso, schemi separati.

Qualcuno può suggerire il seguente 1. Dopo aver creato lo schema come autorizzare utente contro un particolare schema di 2. Questo è possibile che, senza alcuna modifica nelle query db possono servire multi-inquilini

Grazie in anticipo Anil

risposta

2

Dopo molte ricerche, posso dire che, sebbene occorra più sviluppo in anticipo e più controlli lungo il percorso, il database condiviso e lo schema condiviso sono la strada da seguire. Mette un po 'di limiti su quanto facilmente si possa soddisfare le esigenze specifiche di un cliente, ma dal mio punto di vista SAAS non si occupa di soddisfare le particolari esigenze di un singolo cliente. Si tratta di catering per la maggior parte dei clienti. Non che sia un SAAS ma prendi l'iPhone come esempio. E 'stato costruito per soddisfare le masse. Piuttosto che concentrarsi sul fare tutto ciò che è costruito per essere di una taglia unica si adatta solo alla sua semplicità. Questo non aiuta il tuo caso quando si tratta di autorizzazione, ma ti farà risparmiare ore di sviluppo a lungo termine.

0

Se si sta chiedendo questo nel contesto del meccanismo di autenticazione/autorizzazione di SQL Server, posso rispondere a questa domanda dicendo che ogni utente ha uno schema predefinito che aiuta il motore di query a trovare l'oggetto richiesto nel database.

SQL Query Engine analizzerà innanzitutto lo schema predefinito dell'utente per trovare l'oggetto richiesto (tabella). Se trova l'oggetto nello schema dell'utente, allora lo usa, altrimenti va allo schema di sistema predefinito (dbo) per trovarlo.

Controllare this articolo Come fare riferimento alla sezione Oggetti per scoprire come funziona. L'articolo ha anche alcune informazioni sui concetti di sicurezza relativi agli schemi.

Problemi correlati