Je viens d'installer Postgres 8.4 sur Ubuntu 9.10 et il ne m'a jamais demandé de créer un superutilisateur. Y a-t-il un superutilisateur par défaut et son mot de passe? Si non, comment en créer un nouveau?
postgresql
user-management
Thierry Lam
la source
la source
Réponses:
ATTENTION La réponse à propos de la modification du mot de passe UNIX pour "postgres" par "$ sudo passwd postgres" n’est pas préférable, elle peut même être DANGEREUSE !
C'est pourquoi: Par défaut, le compte UNIX "postgres" est verrouillé, ce qui signifie qu'il ne peut pas être connecté à l'aide d'un mot de passe. Si vous utilisez "sudo passwd postgres", le compte est immédiatement déverrouillé. Pire, si vous définissez le mot de passe sur une valeur faible, telle que "postgres", vous vous exposez à un grand danger pour la sécurité. Par exemple, un certain nombre de bots essaient de combiner le nom d'utilisateur / mot de passe "postgres / postgres" pour se connecter à votre système UNIX.
Ce que vous devriez faire est de suivre la réponse de Chris James :
Pour l'expliquer un peu. Il existe généralement deux méthodes par défaut pour se connecter au serveur PostgreSQL:
En exécutant la commande « psql » en tant qu'utilisateur UNIX (que l' on appelle l' authentification IDENT / PEER), par exemple:
sudo -u postgres psql
. Notez quesudo -u
cela ne déverrouille PAS l'utilisateur UNIX.via une connexion TCP / IP utilisant le nom d'utilisateur / mot de passe géré par PostgreSQL (appelé "authentification TCP") (c'est-à-dire, PAS le mot de passe UNIX).
Donc, vous ne voulez jamais définir le mot de passe pour le compte UNIX "postgres". Laissez-le verrouillé tel qu'il est par défaut.
Bien sûr, les choses peuvent changer si vous le configurez différemment du réglage par défaut. Par exemple, on pourrait synchroniser le mot de passe PostgreSQL avec le mot de passe UNIX et n'autoriser que les connexions locales. Cela dépasserait le cadre de cette question.
la source
/etc/shadow
est l'endroit où le mot de passe est conservé @lzap.Entrez sur la ligne de commande:
Tu verras:
la source
Vous manipulez postgres via l'utilisateur
postgres
, comme suit:la source
su
l'utilisateur postgres sans entrer de mot de passe. Sur la plupart des systèmes, le compte Postgres Unix est verrouillé (aucun mot de passe ne fonctionnera), ce qui signifie que seul le compte root peut lesu
faire.sudo
au lieu desu
.sudo su - postgres
: \sudo -u postgres
.Sous Windows, procédez comme suit (IMPORTANT: utilisez un compte d' administrateur Windows ):
Après l'installation, ouvrez
<PostgreSQL PATH>\data\pg_hba.conf
.Modifiez ces deux lignes et remplacez "md5" par "confiance":
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Redémarrez le service PostgreSQL (peut ne pas être nécessaire).
(Facultatif) Ouvrez une invite de commande et modifiez la page de codes en 1252:
cmd.exe /c chcp 1252
Connectez-vous à PostgreSQL. Un mot de passe différent sera requis (notez le paramètre majuscule -U):
psql -U postgres
(Facultatif, recommandé pour des raisons de sécurité) Modifiez le
postgres
mot de passe de l'utilisateur:\password postgres
et remplacez "confiance" par "md5" dans
pg_hba.conf
.la source
Si vous essayez d'accéder au shell PostgreSQL, vous pouvez taper:
psql -U postgres my_database
Où
my_database
est votre nom de base de données.la source