Manager une BDD
Se connecter à PostgreSQL
psql -h localhost -p 5432 -U <username> -W
Il est possible que la commande psql vous sorte une erreur de type : commande inconnue.
Dans ce cas vous allez devoir vous connecter sur l'utilisateur Linux possédant les droits d'utilisation de la commande psql.
su - postgres
Lister les utilisateurs
Dans l'interface de psql :
\du
Créer un utilisateur
Il existe deux commandes différentes pour réaliser cette action.
CREATE USER <username>;
ou
CREATE ROLE <username> WITH LOGIN;
Créer un super utilisateur
Un super utilisateur de base de données contourne toutes les vérifications, ce qui est dangereux du point de vue de la sécurité. Utilisez cette action avec précaution et évitez de travailler avec un compte super utilisateur sauf en cas de nécessité absolue.
Sur PostgreSQL le "super user" est postgres mais dans certain cas il est possible de vouloir créer son propre super user.
Pour créer un super utilisateur :
CREATE USER <username> SUPERUSER;
Si cet utilisateur doit avoir un mot de passe :
CREATE USER <username> WITH SUPERUSER PASSWORD 'passwordstring';
Mot de passe
Dans le cas ou vous avez créé un utilisateur sans mot de passe il possible de lui rajouter le mot de passe via la commande suivante.
ALTER USER <username> WITH PASSWORD '<password>';
Créer un utilisateur avec des droits
CREATE USER <name> WITH <option>;
-s--superuser
SUPERUSER
Add the superuser privilege.
-S--no-superuser
NOSUPERUSER
No superuser privilege (default).
-d--createdb
CREATEDB
Allows the user to create databases.
-D--no-createdb
NOCREATEDB
Not allowed to create databases (default).
-r--createrole
CREATEROLE
Allows the user to make new roles.
-R--no-createrole
NOCREATEROLE
Not allowed to create roles (default).
-i--inherit
INHERIT
Automatically inherit the privileges of roles (default).
-I--no-inherit
NOINHERIT
Do not inherit privileges of roles.
-l--login
LOGIN
Allows the user to log into a session with the role name (default).
-L--no-login
NOLOGIN
Not allowed to log into a session with the role name.
--replication
REPLICATION
Allows initiating streaming replication and activating/deactivating backup mode.
--no-replication
NOREPLICATION
Not allowed to initiate streaming replication or backup mode (default).
-P--pwprompt
PASSWORD '<password>'
Initiates password creation prompt or adds provided password to the user. Avoid using this option to create a passwordless user.
/
PASSWORD NULL
Specifically sets the password to null. Every password authentication fails for this user.
-c <number>--connection-limit=<number>
CONNECTION LIMIT <number>
Sets the maximum number of connections for user. Default is without limit.
Supprimer un utilisateur
DROP USER [IF EXISTS] <username>;
Si l'utilisateur que vous essayez de supprimer possède des dépendances, la suppression échouera.
Vous allez devoir transférer les dépendances a un autre utilisateur.
1) Par exemple, pour transférer les objets appartenant à myuser à postgres, exécutez :
REASSIGN OWNED BY <old_user> TO <new_user>;
2) Supprimer les connexions de l'objet de la base de données à l'utilisateur avec :
DROP OWNED BY <username>;
3) Maintenant vous pouvez supprimer l'utilisateur
Supprimer un rôle
DROP ROLE [IF EXISTS] <name>;