PostgreSQL
◼Présentation
• Historique
✓ Base de données Ingres développée à Berkeley par Michael
Stonebraker
✓ En 1985, reprise à zéro du développement, nom donné Postgres
comme raccourci de Post-Ingres
✓ En 1995, lors d’ajout de fonctionnalités SQL, Postgres fut
renommer Posgres95, puis à la fin de 1996 PostgreSQL
• Principales caractéristiques
✓ Outil libre disponible selon les termes d’une licence BSD
✓ C’est un Système de Gestion de Bases de Données
Relationnelles et Objets (SGBDRO)
ASSALE Adjé Louis PostgreSQL 1
PostgreSQL
◼Présentation
• Principales caractéristiques
✓ Outil libre disponible selon les termes d’une licence BSD
✓ C’est un Système de Gestion de Bases de Données
Relationnelles et Objets (SGBDRO)
◼ Stockage de types de données autres que les types standards
✓ Reconnu pour son fonctionnement stable, proche d’Oracle
✓ Dispose de possibilités de programmation étendues via
PL/pgSQL
✓ Capacité à gérer des bases de données volumineuses, et des
bases de données spatiales (SIG) grâce à son extension PostGIS
intégrant une riche bibliothèque de fonctions géographiques
ASSALE Adjé Louis PostgreSQL 2
PostgreSQL
◼Installation et Configuration
• Différentes plateformes
✓ PostgreSQL a été développé pour les plateformes Unix
✓ Mais a été conçu pour être portable
✓ Depuis la version 8.0, PostgreSQL offre un installer pour les
systèmes Windows rendant l’installation facile et rapide
• Installation sous Windows
✓ Téléchargement du logiciel PostgreSQL à l’adresse suivante :
◼ https://www.enterprisedb.com/downloads/postgres-postgresql-
downloads
ASSALE Adjé Louis PostgreSQL 3
PostgreSQL
◼Installation et Configuration
• Installation sous Windows
✓ Les étapes de l’installation :
◼ Lancer le fichier d’installation : postgresql-15.4-1-windows-x64.exe
ASSALE Adjé Louis PostgreSQL 4
PostgreSQL
◼Installation et Configuration
• Installation sous Windows
✓ Les étapes de l’installation :
◼ Choix des composants à installer et du répertoire des données :
ASSALE Adjé Louis PostgreSQL 5
PostgreSQL
◼Installation et Configuration
• Installation sous Windows
✓ Les étapes de l’installation :
◼ Saisir un mot de passe et un numéro de port :
ASSALE Adjé Louis PostgreSQL 6
PostgreSQL
◼Installation et Configuration
• Installation sous Windows
✓ Les étapes de l’installation :
◼ Choisir les options par défaut et cliquer sur suivant, cliquer sur Terminer
ASSALE Adjé Louis PostgreSQL 7
PostgreSQL
◼Installation et Configuration
• Installation sous Windows
✓ Vérification de l’installation :
◼ Connexion à partir du shell (psql)
◼ Cliquer sur SQL Shell (psql) et suivre les étapes
ASSALE Adjé Louis PostgreSQL 8
PostgreSQL
◼Installation et Configuration
• Installation sous Windows
✓ Vérification de l’installation :
◼ Connexion à partir de pgAdmin 4
◼ Cliquer sur pgAdmin 4 et suivre les étapes
ASSALE Adjé Louis PostgreSQL 9
PostgreSQL
◼Installation et Configuration
• Configuration
✓ Définir le répertoire bin dans la variable d’environnement Path
◼ Copier le chemin d’accès au répertoire bin de PostgreSQL
ASSALE Adjé Louis PostgreSQL 10
PostgreSQL
◼Installation et Configuration
• Configuration
✓ Définir le répertoire bin dans la variable d’environnement Path
◼ Ouvrir la fenêtre des variables d’environnement Système
◼ Taper : env dans la barre de recherche windows, puis cliquer sur
Modifier variables d’environnement système
ASSALE Adjé Louis PostgreSQL 11
PostgreSQL
◼Installation et Configuration
• Configuration
✓ Définir le répertoire bin dans la variable d’environnement Path
◼ Ouvrir la fenêtre des variables d’environnement Système
◼ Cliquer sur Path dans Variables système, puis Nouveau et Ctrl + V
ASSALE Adjé Louis PostgreSQL 12
PostgreSQL
◼Création d’objets
• Tablespaces
✓ Notion de tablespace
◼ Emplacement sur le disque où PostgreSQL enregistre les fichiers de
données contenant les objets de bases de données tels index et tables
◼ Tablespace est utilisé pour mapper un nom logique à un emplacement
physique sur le disque
◼ 2 tablespaces par défaut sont créés lors de l’installation
◼ pg_default tablespace pour les données utilisateurs
◼ pg_global tablespace pour les données globales
✓ Création de tablespace : CREATE TABLESPACE
◼ Syntaxe : Create tablespace nom_tablespace [Owner nom_utilisateur]
location chemin;
ASSALE Adjé Louis PostgreSQL 13
PostgreSQL
◼Création d’objets
• Tablespaces
✓ Création de tablespace : CREATE TABLESPACE
◼ Par défaut l’utilisateur qui exécute CREATE TABLESPACE est le
propriétaire du tablespace, spécifier un autre après OWNER
◼ Location : est un chemin absolu d’un répertoire existant utilisé par
le tablespace
◼ Exemple : Create tablespace application
location 'C:/pgdata’;
✓ Affichage des tablespaces :
◼ Syntaxe : \db ou
\db+ avec la taille des tablespaces
ASSALE Adjé Louis PostgreSQL 14
PostgreSQL
◼Création d’objets
• Tablespaces
✓ Modification de tablespaces : ALTER TABLESPACE
◼ Modification possible du nom – propriétaire et des paramètres
◼ Modification du nom :
◼ Alter tablespace nom_tablespace rename to nouveau_nom;
◼ Modification du propriétaire :
◼ Alter tablespace nom_tablespace owner to nom_proprietaire;
◼ Changement de paramètres :
◼ Alter tablespace nom_tablespace set nom_parametre = valeur;
✓ Suppression d’un tablespace : DROP TABLESPACE
◼ Syntaxe : Drop Tablespace [ if exists] nom_tablespace;
ASSALE Adjé Louis PostgreSQL 15
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Création de bases de données : CREATE DATABASE
◼ Posséder le rôle superuser ou le privilège createdb
◼ Syntaxe : Create database nom_base_de_donnees with
[Owner = nom_rôle] [Template = modele]
[Encoding = encodage]
[LC_COLLATE = collation] [LC_CTYPE = ctype]
[Tablespace = nom_tablespace]
[Allow_connections = true | false]
[Connection limit = max_concurrent_connections]
[Is_template = true | false]
ASSALE Adjé Louis PostgreSQL 16
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Création de bases de données : CREATE DATABASE
◼ Paramètres :
◼ Owner : rôle propriétaire de la base, par défaut le rôle du créateur
◼ Template : spécifie le modèle de la base, par défaut template1
◼ Encoding : jeu de caractères d’encodage
◼ LC_collate : spécifie le tri de collation à utiliser
◼ LC_ctype : spécifie la classification de caractère à utiliser
◼ Tablespace : nom du tablespace de la base de données
◼ Connection limit : nombre maximum de connexions concurrentes
◼ Allow_connections : autorise les connexions à la base
◼ Is_template : utilisateur avec privilège createdb peut cloner la base
ASSALE Adjé Louis PostgreSQL 17
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Création de bases de données : CREATE DATABASE
◼ Exemples :
◼ Création de bases de données avec les paramètres par défaut :
create database ventes;
◼ Création de bases de données avec des paramètres :
create database lesventes with
encoding = 'UTF8' tablespace = 'application'
connection limit = 100;
◼ Affichage des bases de données :
◼ \list ou \l
◼ Se connecter à une base :
◼ \c nom_base [nom_rôle]
ASSALE Adjé Louis PostgreSQL 18
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Création de bases de données : CREATE DATABASE
◼ On peut créer une base de données via pgAdmin :
ASSALE Adjé Louis PostgreSQL 19
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Création de bases de données : CREATE DATABASE
◼ On peut créer une base de données via pgAdmin :
ASSALE Adjé Louis PostgreSQL 20
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Modification de bases de données : ALTER DATABASE
◼ On peut modifier les attributs – le nom – le rôle propriétaire – le
tablespace par défaut et les sessions par défaut des variables de
configuration en mode d’exécution:
◼ Modification des attributs, cela concerne : IS_TEMPLATE –
CONNECTION LIMIT – ALLOW_CONNECTIONS
◼ Syntaxe : Alter database nom_base with option;
◼ Changement du nom de la base :
◼ Syntaxe : Alter database nom_base rename to nouveau_nom;
◼ Changement de propriétaire :
◼ Syntaxe : Alter database nom_base owner to nouv_proprio |
current_user | session_user;
ASSALE Adjé Louis PostgreSQL 21
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Modification de bases de données : ALTER DATABASE
◼ Changement du nom du tablespace :
◼ Syntaxe : Alter database nom_base set tablespace nom_tablespace;
◼ Changement de session par défaut pour les variables de configuration en
mode exécution :
◼ À la connexion, PostgreSQL charge les variables de configuration à
partir du fichier postgresql.conf et les utilise par défaut
◼ Syntaxe : Alter database nom_base
set configuration_parameter = valeur;
◼ Exemple : alter database ventes set escape_string_warning = off;
ASSALE Adjé Louis PostgreSQL 22
PostgreSQL
◼Création d’objets
• Bases de Données : Databases
✓ Suppression de bases de données : DROP DATABASE
◼ Syntaxe : Drop database [if exists] nom_base;
◼ Exemple : Drop database lesventes;
✓ Copie de bases de données dans le même serveur:
◼ Syntaxe : Create database nom_base
with Template nom_base_à_copier;
◼ Exemple : create database ventes_test with Template ventes;
ASSALE Adjé Louis PostgreSQL 23
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Principes
◼ PostgreSQL utilise les rôles pour représenter les comptes utilisateurs
◼ Rôles pouvant se connecter sont appelés rôles de connexion. Ils sont
l’équivalent d’utilisateurs dans d’autres SGBD
◼ Quand des rôles contiennent d’autres rôles,
ils sont appelés rôles de groupe
◼ Notons que depuis la version 8.1, utilisateurs et
groupes sont combinés dans rôles
✓ Création de rôle : CREATE ROLE
◼ Syntaxe : Create role nom_rôle [with] [option];
◼ un rôle créé est valide dans toutes les bases de données du serveur
ou cluster; option voir plus loin
ASSALE Adjé Louis PostgreSQL 24
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Création de rôle : CREATE ROLE
◼ Exemple : Create role bob;
◼ Pour avoir la liste des rôles, interroger la table pg_roles par :
◼ SELECT rolname FROM pg_roles;
◼ La commande \du affiche liste des rôles
de la base de données courante :
◼ \du
ASSALE Adjé Louis PostgreSQL 25
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Création de rôle : CREATE ROLE
◼ Attributs de rôle définissent les privilèges pour ce rôle incluant :
connexion – super utilisateur – création de bases – etc
◼ Create role nom_role [with] option;
◼ Option peut être l’un ou plusieurs de ces attributs : SUPERUSER,
CREATEDB, CREATEROLE, etc
◼ Création de rôle de connexion :
◼ Exemple : create role assale login password 'Ashley-23';
◼ Connexion à partir de la ligne de commande :
◼ Syntaxe : psql – U nom_rôle –W nom_base
C:\Users\Assale>psql –U assale –W ventes
mot de passe :
ASSALE Adjé Louis PostgreSQL 26
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Création de rôle : CREATE ROLE
◼ Création de rôle superuser :
◼ Exemple : create role adje superuser login password 'Ashley-23';
◼ Notons qu’il faut être superuser pour créer un rôle superuser
◼ Création de rôle pouvant créer une base de données :
◼ Exemple : create role dba createdb login password 'As-43';
◼ Création de rôle avec période de validité :
◼ create role louis login password 'As-44' valid until '2024-03-01';
◼ Création de rôle avec nombre connexions simultanées limité
◼ create role yvann login password ‘Ay-34' connection limit 3;
◼ Affichage des rôles commande : \du
ASSALE Adjé Louis PostgreSQL 27
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Création de rôle : CREATE ROLE
◼ Création de rôle de groupe :
◼ Exemple : create role grpe1;
◼ Ajout d’un rôle utilisateur à un rôle de groupe :
Grant grpe1 to adje;
◼ Suppression d’un rôle utilisateur d’un rôle de groupe :
revoke grpe1 from adje;
◼ Attribution de privilèges à un rôle :
◼ Syntaxe : grant {All | liste_privilèges }
on nom_table
to nom_rôle ;
ASSALE Adjé Louis PostgreSQL 28
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Modification de rôle : ALTER ROLE
◼ Sert à changer les attributs d’un rôle, renommer un rôle, ou changer
valeur par défaut de session pour variable de configuration :
◼ Changement des attributs : alter role nom_rôle [With] option;
◼ Les options sont :
◼ Superuser | nosupersuser : rôle super utilisateur ou non;
◼ Createdb | nocreatedb : rôle de création de base de données ou pas
◼ Createrole | nocreaterole : création de rôle ou pas
◼ Inherit | noinherit : hérite des privilèges de rôles dont il est membre
◼ Login | nologin : permet au rôle de se connecter ou pas
◼ Replication | noreplication : rôle de réplication
ASSALE Adjé Louis PostgreSQL 29
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Modification de rôle : ALTER ROLE
◼ Les options sont :
◼ Bypassrls | nobypassrls : si le rôle bypasse règle de sécurité RLS;
◼ Connection limit valeur : fixe le nombre de connexions
simultanées, -1 pour illimité
◼ Password 'mot_passe' | password null : change le mot de passe
◼ Valid until 'date-temps' : fixe le délai de validité du mot de passe
◼ Les règles suivantes sont appliquées :
◼ Superuser peut changer les attributs de n’importe quel rôle
◼ Createrole peut changer attributs de nosuperuser et noreplication
◼ Rôle ordinaire ne peut modifier que mot de passe
ASSALE Adjé Louis PostgreSQL 30
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Modification de rôle : ALTER ROLE
◼ Changement du nom du rôle :
◼ Syntaxe : alter role nom_rôle to nouv_nom;
◼ Superuser peut renommer n’importe quel rôle
◼ Createrole ne peut renommer que les non super utilisateurs
◼ Un rôle ne peut pas changer son nom durant la session
◼ Changement de valeur par défaut de session variable de configuration :
◼ Syntaxe : alter role nom_rôle | current_user | session_user | All
[ in database nom_base ]
set nom_param = {valeur | default}
✓ Suppression de rôle : DROP ROLE
◼ Syntaxe : drop role [if exists] nom_rôle; 31
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Attribution de privilèges à des rôles : GRANT
◼ Liste des privilèges : voir diapositive suivante
◼ Syntaxe pour les tables :
◼ Grant {{select | insert | update | references} [(colonne [,…])] |
delete | truncate | trigger [,…] | All [privileges] }
On { [table] nom_table [,…] | All tables in schema nom_schema
[,…]} to spécification_rôle[,…] [with grant option]
◼ spécification_rôle pouvant être :
[Group] nom_rôle | Public | Current_role | Current_user |
Session_user
◼ Exemple : grant select, update, delete on Etudiant to adje;
ASSALE Adjé Louis PostgreSQL 32
PostgreSQL
◼Création d’objets (liste des privilèges)
Privilege Abbreviation Applicable Object Types
SELECT r (“read”) LARGE OBJECT, SEQUENCE, TABLE (and table-like objects), table column
INSERT a (“append”) TABLE, table column
UPDATE w (“write”) LARGE OBJECT, SEQUENCE, TABLE, table column
DELETE d TABLE
TRUNCATE D TABLE
REFERENCES x TABLE, table column
TRIGGER t TABLE
CREATE C DATABASE, SCHEMA, TABLESPACE
CONNECT c DATABASE
TEMPORARY T DATABASE
EXECUTE X FUNCTION, PROCEDURE
DOMAIN, FOREIGN DATA WRAPPER, FOREIGN SERVER, LANGUAGE, SCHEMA,
USAGE U
SEQUENCE, TYPE
SET s PARAMETER
33
ALTER SYSTEM A PARAMETER
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Attribution de privilèges à des rôles : GRANT
◼ Syntaxe pour les séquences :
◼ Grant {{select | Usage | update } [,…])] |
All [privileges] } On { [sequence] nom_séquence [,…] |
All sequences in schema nom_schema [,…]}
to spécification_rôle[,…] [with grant option]
◼ Syntaxe pour les bases de données :
◼ Grant {{create | connect | temporary | temp } [,…])] |
All [privileges] } On database nom_base [,…]
to spécification_rôle[,…] [with grant option]
◼ Exemple : grant all on all tables in schema "public" to assale;
ASSALE Adjé Louis PostgreSQL 34
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Attribution de privilèges à des rôles : GRANT
◼ Syntaxe pour les sous-programmes :
◼ Grant { execute | All [privileges] }
On {{ function | procedure | routine} nom_ss-prog [ ( [ [mode_arg]
[nom_arg,…] type_arg [, …] ] ) ] [, …] |
All {functions | procedures | routines}in schema
nom_schema [,…]}
to spécification_rôle[,…] [with grant option]
◼ Syntaxe pour les langages :
◼ Grant {usage | All [privileges] } On language nom_langage [,…]
to spécification_rôle[,…] [with grant option]
◼
ASSALE Adjé Louis PostgreSQL 35
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Attribution de privilèges à des rôles : GRANT
◼ Syntaxe pour les larges objets :
◼ Grant { { select | update } [, …] | All [privileges] }
On large object id_large_objet [, …]
to spécification_rôle[,…] [with grant option]
◼ Syntaxe pour les paramètres de configuration :
◼ Grant {{set | alter system }[, …] | All [privileges] }
On parameter param_config [,…]
to spécification_rôle[,…] [with grant option]
◼
ASSALE Adjé Louis PostgreSQL 36
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Attribution de privilèges à des rôles : GRANT
◼ Syntaxe pour les schémas :
◼ Grant { { create | usage } [, …] | All [privileges] }
On schema nom_schéma [, …]
to spécification_rôle[,…] [with grant option]
◼ Syntaxe pour les tablespaces :
◼ Grant { create | All [privileges] }
On tablespace nom_tablespace [,…]
to spécification_rôle[,…] [with grant option]
◼
ASSALE Adjé Louis PostgreSQL 37
PostgreSQL
◼Création d’objets
• Notions de rôles
✓ Attribution de privilèges à des rôles : GRANT
◼ Syntaxe pour les types :
◼ Grant { usage | All [privileges] } On type nom_type [, …]
to spécification_rôle[,…] [with grant option]
◼ Syntaxe pour les rôles :
◼ Grant nom_rôle to spécification_rôle[,…] [with grant option]
✓ Gestion de rôle membre d’un rôle de groupe
◼ Un rôle peut utiliser les privilèges d’un rôle de groupe par :
◼ L’attribut INHERIT : rôle créé avec cet attribut a automatiquement
les privilèges du groupe auquel il appartient
◼ En utilisant l’instruction SET ROLE
ASSALE Adjé Louis PostgreSQL 38
PostgreSQL
◼Création d’objets
• Gestion des schémas
✓ Présentation
◼ Un schéma est un espace de nom contenant les objets de bases de
données tels que tables, vues, index, types de données, fonctions,
procédures stockées et opérateurs
◼ Un schéma permet d’organiser les objets en groupe logique pour mieux
les gérer. Un schéma par défaut « public » est créé à l’installation
◼ Une base de données peut contenir un ou plusieurs schémas, et un
schéma est contenu dans une seule base de données
◼ 2 schémas d’une base de données peuvent avoir des objets de mêmes
noms. Les utilisateurs peuvent utiliser une base sans s’interférer
◼ Pour accéder à un objet d’un schéma, on utilise la syntaxe :
[nom_schema].nom_objet
ASSALE Adjé Louis PostgreSQL 39
PostgreSQL
◼Création d’objets
• Gestion des schémas
✓ Chemin de recherche de schéma
◼ Utilisation d’un objet sans préciser son schéma oblige PostgreSQl à
rechercher l’objet dans le schéma courant : current_schema()
◼ Pour afficher le schéma courant, on utilise :
◼ Select current_schema(); ou
◼ Show serach_path;
◼ Ajout d’un schéma au chemin de recherche
◼ Syntaxe : set search_path to nom_schéma [, …],public;
◼ Le 1er schéma dans la liste devient le schéma courant
◼ Pour permettre à un rôle d’accéder à un schéma qui ne lui appartient pas
◼ Grant usage on schema nom_schéma to nom_rôle;
ASSALE Adjé Louis PostgreSQL 40
PostgreSQL
◼Création d’objets
• Gestion des schémas
✓ Création de schéma : CREATE SCHEMA
◼ Syntaxe : create schema [if not exists] nom_schéma;
◼ Création de schéma pour utilisateur
◼ Syntaxe : create schema [if not exists] [nom_schéma]
authorization nom_rôle;
◼ En cas d’absence du nom, le schéma a le même nom que le rôle
◼ Création de schéma avec une liste d’objets :
◼ Syntaxe : create schema [if not exists] nom_schéma
create table nom_table1(…)
create table nom_table2(…)
create view nom_vue1
select liste_colonne from nom_table1;
ASSALE Adjé Louis PostgreSQL 41
PostgreSQL
◼Création d’objets
• Gestion des schémas
✓ Création de schéma : CREATE SCHEMA
◼ Exemple : création du schéma essai pour assale
◼ Create schema if not exists essai authorization assale;
◼ Exemple de création de schéma contenant une table :
◼ create schema if not exists ecole
create table classe (code_cl varchar(5) primary key,
libelle varchar(30) not null, effectif smallint)
create table etudiant (matricule varchar(10) primary key,
nom varchar(30) not null, prenoms varchar(50),
sexe char(1), code_cl varchar(5) references classe);
◼ Afficher les schémas de la base courante par :
◼ Select * from pg_catalog.pg_namespace order by nspname;
ASSALE Adjé Louis PostgreSQL 42
PostgreSQL
◼Création d’objets
• Gestion des schémas
✓ Modification de schéma : ALTER SCHEMA
◼ Permet de modifier la définition du schéma
◼ Modification du nom du schéma :
◼ Alter schema nom_schéma rename to nouveau_name;
◼ Modification du propriétaire du schéma:
◼ Alter schema nom_schéma Owner to {nouv_proprio | current_user |
session_user};
◼ Exemple : alter schema essai owner to postgres;
✓ Suppression de schéma : DROP SCHEMA
◼ Drop schema [if exists] nom_schéma1 [,nom_schéma2, …]
[cascade | restrict]; //cascade supprime tous les objets, restrict
valeur par défaut
ASSALE Adjé Louis PostgreSQL 43
PostgreSQL
◼Travaux Pratiques N°1
• Gestion des objets
✓ Se connecter comme « postgres »
✓ Créer un espace de table nommé « inp » dans un dossier de
même nom.
✓ Afficher tous les tablespaces pour voir si le vôtre y figure
✓ Créer 2 bases de données sur l’espace de table « inp », l’une
nommée « Gest_Etud » et l’autre « Gest_Clients »
✓ Afficher toutes les bases de données et vérifier si les vôtres y
figurent
✓ Créer les rôles de groupe « manage_et » et « manage_cli »
✓ Créer les rôles de connexion « ing01 » et « ing02 »
ASSALE Adjé Louis PostgreSQL 44
PostgreSQL
◼Travaux Pratiques N°1
• Gestion des objets
✓ Créer les rôles de connexion « ing01 » et « ing02 » avec des
mots de passe de votre choix :
◼ Le rôle « ing02 » dispose de l’attribut « inherit »
◼ Afficher les rôles créés
✓ créer 2 schémas « les_etudiants » et « les_clients »
✓ Afficher tous les schémas
ASSALE Adjé Louis PostgreSQL 45