web-dev-qa-db-fra.com

Comment créer un utilisateur pour Postgres à partir de la ligne de commande pour l'automatisation bash

J'utilise Ubuntu 12.04 et Postgress 9.2.

J'ai besoin de créer cet utilisateur avec ce mot de passe, par exemple.

postgres://admin:[email protected]:5432

Comment faire ça depuis la ligne de commande? J'ai besoin d'automatiser avec un script bash. J'ai une nouvelle installation.

49
Tampa

Cela créera l'utilisateur admin avec le mot de passe test101 sur localhost:

psql -c "CREATE USER admin WITH PASSWORD 'test101';"
87
Tomas Greif

Pour l'exécuter à partir de n'importe quel utilisateur, ajoutez-y simplement le Sudo -u postgres:

Sudo -u postgres bash -c "psql -c \"CREATE USER vagrant WITH PASSWORD 'vagrant';\""
32
mimoralea

Pour l'exécuter sur l'image d'origine du docker par exemple, vous pouvez utiliser la commande su -c avec l'utilisateur postgres en combinaison avec psql:

su -c "psql -c \"CREATE ROLE my_user WITH LOGIN PASSWORD 'my_password' \"" postgres
0
anj

Si vous exécutez à partir de la racine, vous pourriez recevoir une erreur comme could not change directory to "/root": Permission denied
Il est donc préférable d’exécuter Sudo avec -i comme ceci:
Sudo -i -u postgres psql -c "CREATE USER myuser WITH PASSWORD 'myuser1234';"

0
Iman Mirzadeh