Je suis nouveau sur PostgreSQL et suivais ce tutoriel. Je peux très bien créer des rôles, mais lorsque j'ai essayé d'utiliser les commandes createuser et dropuser , cela ne fait rien et aucun nouvel utilisateur n'est créé ou supprimé. J'ai essayé de l'utiliser avec et sans le point-virgule à la fin, le premier donne une erreur de syntaxe et le second ne fait rien.
postgres (PostgreSQL) 11.1
J'ai aussi essayé ceci: p >
createuser --interactive joe
De plus, cela n'a rien fait.
Quelle est la bonne façon d'utiliser createuser ? J'utilise la version suivante.
postgres-# createuser joe;
ERROR: syntax error at or near "createuser"
LINE 1: createuser
^
postgres=# ;
postgres=# createuser joe;
ERROR: syntax error at or near "createuser"
LINE 1: createuser joe;
^
postgres=# createuser joe
postgres-# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
admin | Superuser, Create DB | {}
john | Superuser, Create role, Create DB, Replication | {}
guest | | {}
guest3 | | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
3 Réponses :
Je pense que vous avez besoin d'un espace entre votre commande, quelque chose comme ce qui suit:
CREATE USER youruser WITH ENCRYPTED PASSWORD 'yourpass'; GRANT ALL PRIVILEGES ON DATABASE yourdbname TO youruser;
Dans l'outil psql , vous devez saisir des commandes SQL. Pour créer un utilisateur à partir de SQL, vous devez utiliser create user code > .
Le didacticiel exécutait probablement l'utilitaire de ligne de commande createuser (pas la commande SQL)
Pour comprendre pourquoi:
postgres=# createuser joe
n'a rien fait, voir: Dans psql, pourquoi faire certaines commandes n'ont aucun effet?
D'accord, j'ai peut-être mal compris le tutoriel. Je pensais que cela signifiait que l'utilitaire était livré avec le package et qu'il essayait d'utiliser à la fois en psql et en ligne de commande. Merci de clarifier!
@zach: Si cette réponse a résolu votre question, acceptez -la ( ou l'un des autres), afin que votre question soit marquée comme résolue.
La commande createuser doit s'exécuter dans la console (bash). Pas besoin de le faire dans psql. Exemple:
createuser -h localhost -p 5432 joe