Propriétaire de schéma public change en fonction de qui je suis connecté en tant qu'?
$ psql postgres
postgres=# \dn
List of schemas
Name | Owner
--------------------+----------
information_schema | postgres
pg_catalog | postgres
pg_toast | postgres
pg_toast_temp_1 | postgres
public | student
(5 rows)
Lorsque je me connecte à psql avec l'utilisateur postgres, il montre que le schéma public est la propriété de l'utilisateur de l'étudiant. Cependant, lorsque je me connecte à psql avec l'utilisateur de l'étudiant:
$ psql student
student=> \dn
List of schemas
Name | Owner
--------------------+----------
information_schema | postgres
pg_catalog | postgres
pg_toast | postgres
pg_toast_temp_1 | postgres
public | postgres
(5 rows)
Il montre que le schéma public est la propriété de l'utilisateur postgres.
Comment puis-je obtenir la propriété de schéma public transféré à l'utilisateur de l'étudiant si l'utilisateur avec des privilèges pense que c'est déjà fait?
OriginalL'auteur Ceili | 2014-01-03
Vous devez vous connecter pour publier un commentaire.
C'est un malentendu. Vous vous connectez deux bases de données différentes.
Lors de l'exécution de
postgres
est le nom de la base de données. Avec la configuration par défaut le nom de la base de données utilisateur est dérivé du nom de l'utilisateur du système à l'aide deident
authentification automatiquement. Le seul paramètre est supposé être le nom de base de données. Vous ne pas veulent rien changer dans la base de donnéespostgres
, c'est un système de base de données pour les tâches de maintenance.L'autre base de données est nommé
student
. Chaque base de données possède un schémapublic
avec son propriétaire respectif.Lire la manuel pour psql ou essayez une humble
man psql
.De transférer la propriété du schéma
public
dans la base de donnéesstudent
, connectez-vous en tant que superutilisateur:Ou tout simplement (système de l'utilisateur postgres):
Et de l'exécution:
Les détails dans le manuel une fois de plus.
OriginalL'auteur Erwin Brandstetter