1

J'écris un CMS en utilisant PHP et PostgreSQL. Le CMS est capable d'exécuter plusieurs sites à partir d'une base de code unique, en utilisant un ensemble unique de tables par site/domaine, différant en fonction des fonctionnalités activées. Je comprends que PostgreSQL supporte plusieurs schémas dans une seule base de données, et que les permissions d'accès sont ensuite définies par le schéma.CMS personnalisé PostgreSQL/PHP - plusieurs schémas dans une seule base de données de sécurité

Ma question est de savoir s'il y a des implications de sécurité en utilisant un seul schéma par site dans la même base de données?

This question a été très utile pour comprendre les avantages et les inconvénients de toute façon, mais il ne mentionne pas les aspects de sécurité. La réponse choisie indique que "schéma" de PostgreSQL est équivalent à "base de données" MySQL. Si c'est le cas, je suis à l'aise avec cette approche. Cependant, y a-t-il des problèmes de sécurité dont je devrais être au courant? Ma compréhension est que les autorisations granulaires utilisées par PostgreSQL devraient protéger chaque schéma dans une base de données donnée, mais je ne suis pas sûr à 100% sur ce point.

Cette configuration permettra-t-elle également d'interroger plusieurs schémas au sein d'une même requête pour un utilisateur ayant des autorisations sur plusieurs schémas?

Toutes les pensées seraient grandement appréciées, merci d'avance.

Répondre

1

Ils pourront voir que l'autre schéma et les tables existent, mais ils ne pourront pas y accéder. Les catalogues Postgres qui contiennent de telles informations ne peuvent pas être verrouillés comme ça. C'est une "limitation" connue de la séparation par schéma. Sinon, tant que la sécurité est configurée correctement, ils ne doivent pas pouvoir accéder à des informations en dehors de leur schéma.

Et oui, vous pouvez faire une requête utilisateur sur n'importe quel schéma/table/objet auquel ils ont accès, aussi longtemps que c'est dans le chemin de recherche ou en le qualifiant explicitement.

+0

2 bonne réponse, merci à tous les deux. Marqué comme utilisé en raison de la visibilité supplémentaire du schéma 'gotcha'! – CitrusTree

1

Oui, un utilisateur disposant des autorisations appropriées peut effectuer une requête sur plusieurs schémas. Assurez-vous de préfixer les noms des tables avec le nom du schéma. En ce qui concerne la sécurité, tant que vous utilisez un compte d'utilisateur distinct pour chaque schéma qui n'a accès qu'à ce schéma, il ne devrait pas y avoir de différence par rapport à l'utilisation de bases de données séparées.

Questions connexes