PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Application de rails multi-locataires :quels sont les avantages et les inconvénients des différentes techniques ?

MSDN propose une bonne introduction à l'architecture de données mutualisée .

À une extrémité du spectre, vous avez une base de données par locataire (« rien partagé »). Le « rien partagé » rend la reprise après sinistre assez simple et offre le plus haut degré d'isolement entre les locataires. Mais il a également le coût moyen par locataire le plus élevé et prend en charge le moins de locataires par serveur.

À l'autre extrémité du spectre, vous stockez un numéro d'identification de locataire dans chaque ligne de chaque table partagée ("tout partagé"). "Tout partager" rend la reprise après sinistre difficile :pour un seul locataire, vous n'auriez qu'à restaurer certains lignes dans chaque table partagée - et il a le degré d'isolement le plus bas. (Les requêtes mal formées peuvent exposer des données privées.) Mais il a le coût par locataire le plus bas et il prend en charge le plus grand nombre de locataires par serveur.

Cela sonne comme vous parlez d'un schéma par locataire. Portez une attention particulière aux autorisations (SQL GRANT et REVOKE déclarations. Et ALTER DEFAULT PRIVILEGES .)