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.
Cela créera l'utilisateur admin avec le mot de passe test101 sur localhost:
psql -c "CREATE USER admin WITH PASSWORD 'test101';"
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';\""
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
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';"