2
votes

Dans postgresql: CREATE ROLE fonctionne mais pas createuser

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 | {}


0 commentaires

3 Réponses :


4
votes

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;


0 commentaires

7
votes

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?


2 commentaires

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.



1
votes

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


0 commentaires