GNU/Linux >> Tutoriels Linux >  >> Linux

Créer et supprimer des rôles dans PostgreSQL

Pour tester un serveur de base de données de production, vous devez créer des rôles supplémentaires car travailler régulièrement dans vos bases de données en tant que rôle de superutilisateur par défaut est risqué.

Cet article vous montre comment créer des rôles supplémentaires avec PostgreSQL® en utilisant soit psql commandes client ou commandes shell. Vous devez utiliser l'utilisateur Linux®, postgres ®, avec les deux méthodes.

Connectez-vous à votre instance avec vos informations d'identification Linux et exécutez la commande suivante pour basculer les utilisateurs vers postgres utilisateur :

# sudo su - postgres

Utiliser les commandes psql

Utilisez les étapes suivantes pour créer ou supprimer des utilisateurs en utilisant le psql client.

Se connecter avec psql

Connectez-vous au serveur de base de données en utilisant le client psql avec le postgres rôle :

postgres@demo:~$ psql -U postgres
...
Welcome to psql 8.3.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=#

Créer un rôle

Après vous être connecté avec le psql client, exécutez la commande suivante pour créer un rôle qui a le LOGIN attribut et un mot de passe crypté MD5 non vide :

postgres=#CREATE ROLE demorole1 WITH LOGIN ENCRYPTED PASSWORD 'password1';

Remarque :Le point-virgule final (; ) à la fin de l'instruction SQL est requis. Les guillemets simples ( ' ' ) ne font pas partie du mot de passe mais doivent l'entourer.

Confirmez que vous avez créé le rôle avec succès à l'aide de la commande suivante :

postgres=# \du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 demorole1 | no        | no          | no        | no limit    | {}
 postgres  | yes       | yes         | yes       | no limit    | {}
(2 rows)

Supprimer un rôle

Lorsque vous n'avez plus besoin d'un rôle, vous pouvez supprimer (supprimer ou supprimer) un rôle à l'aide de la commande suivante :

postgres=# DROP ROLE demorole1;

Si vous vérifiez ensuite avec le \du commande, vous pouvez voir que demorole1 n'est plus répertorié.

Créer un superutilisateur

Parfois, vous devrez peut-être créer des rôles de superutilisateur supplémentaires, par exemple lorsque vous avez un programmeur de base de données en qui vous avez confiance pour administrer le serveur postgres.

Pour créer un super-utilisateur, exécutez la commande suivante :

postgres=#CREATE ROLE mysuperuser2 WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'mysuperpass2';

La commande définit le LOGIN et spécifie un mot de passe non vide. Ces facteurs sont importants si vous envisagez ce rôle de superutilisateur pour les connexions locales et distantes à la base de données.

Quitter psql

Pour quitter psql , exécutez la commande suivante :

postgres=# \q
...
postgres@demo:~$

Utiliser les commandes shell

Vous pouvez créer et supprimer des rôles de base de données à l'aide des commandes shell createuser et dropuser, qui sont des encapsuleurs pour les instructions CREATE et DROPSQL. Une installation standard de postgres inclut ces commandes.

créerutilisateur

Exécutez la commande suivante pour créer un rôle non superutilisateur qui a le LOGIN attribut :

postgres@demo:~$ createuser -PE demorole2

Enter password for new role:
Enter it again:
...
postgres@demo:~$

Le -P flag vous invite à définir un mot de passe pour le nouveau rôle, et le -E flagindique de stocker le mot de passe sous forme de chaîne cryptée MD5.

Pour vérifier la création du rôle, connectez-vous à psql et exécutez la commande suivante :

postgres=# \du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 demorole2 | no        | no          | no        | no limit    | {}
 postgres  | yes       | yes         | yes       | no limit    | {}
(2 rows)

dropuser

Exécutez la commande suivante pour supprimer un rôle :

postgres@demo:~$ dropuser -i demorole2
...
Role "demorole2" will be permanently removed.
Are you sure? (y/n) y
...
postgres@demo:~$

Le -i flag fournit une invite de confirmation, ce qui est une bonne mesure de sécurité lorsque vous exécutez une commande potentiellement destructrice.

Créer un superutilisateur

Parfois, vous devrez peut-être créer des rôles de superutilisateur supplémentaires, par exemple lorsque vous avez un programmeur de base de données en qui vous avez confiance pour administrer le serveur postgres.

Pour créer un super-utilisateur, exécutez la commande suivante :

postgres@demo:~$ createuser -sPE mysuperuser

Linux
  1. Installation de PostgreSQL et phpPgAdmin dans CentOS

  2. Comment créer un rôle IAM dans AWS à l'aide de Terraform

  3. RHCE Ansible Series #9 :Rôles Ansible

  4. Créer et supprimer des rôles dans PostgreSQL

  5. Créer et contrôler des scripts de démarrage dans BusyBox

Rôles Ansible et comment les utiliser dans les Playbooks

Comment créer une base de données PostgreSQL ?

Créer et gérer un sous-domaine

Créer et supprimer une tâche Cron

Installez PostgreSQL 11 et PgAdmin4 sur Ubuntu 18.04

Créer et configurer un utilisateur dans MSSQL