Pourquoi toutes les bases de données ont un schéma public dans PostgreSQL?
J'étais juste curieux de savoir pourquoi toutes les bases de données PostgreSQL ont un public
schéma qui est accessible à tous les utilisateurs. Je sais que je peux révoquer les privilèges et leur accorder à un seul utilisateur, mais pourquoi n'est-ce pas le défaut?
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas beaucoup de justification donnée, mais voir la section [5.7.6][1] dans le manuel, mais je pense que les réponses suivantes à votre question:
Ma conjecture serait le SQL spec. Mais, c'est assez logique, ce serait
create user
faire autrement, de vous en demander explicitement dire ce schéma, l'utilisateur a accès trop?Si vos utilisateurs n'ont pas accès à une ressource partagée, pourquoi ne pas simplement créer une nouvelle bd pour eux? Contrairement à MySQL, une nouvelle base de données est une base de données et non un alias pour un nouveau schéma.
Je voulais juste préciser cela, cela signifie que chaque base de données possède son propre
public.
schéma.dbo
équivalent àpublic
dans PostgreSQL, où si vous ne spécifiez pas de schéma, la valeur par défautdbo
. IBM DB2 a des schémas ainsi. MySQL est le synonymeschema
, interchangeables avecdatabase
donc pas vraiment un schéma dans le sens des autres mentionnés.