Dans cette étape, vous allez créer un utilisateur et lui accorder l'appartenance au rôle reporting_role pour tester les privilèges.
-
Se connecter au serveur PostgreSQL :
Connectez-vous au serveur PostgreSQL en utilisant l'outil en ligne de commande psql en tant qu'utilisateur postgres.
sudo -u postgres psql
-
Se connecter à la base de données reporting_db :
Connectez-vous à la base de données reporting_db :
\c reporting_db
-
Créer un utilisateur et lui accorder l'appartenance au rôle reporting_role :
Créons un nouvel utilisateur nommé report_user. Ensuite, nous accorderons à cet utilisateur l'appartenance au rôle reporting_role. Cela signifie que report_user héritera des privilèges accordés à reporting_role.
CREATE USER report_user;
GRANT reporting_role TO report_user;
Vous devriez voir la sortie suivante :
CREATE ROLE
GRANT ROLE
-
Configurer PostgreSQL pour l'authentification sans mot de passe :
Par défaut, PostgreSQL utilise l'authentification peer, ce qui peut causer des problèmes de connexion dans ce laboratoire. Nous allons la changer en trust pour simplifier l'accès pour report_user.
Tout d'abord, quittez le shell psql :
\q
Maintenant, modifiez le fichier pg_hba.conf pour changer la méthode d'authentification. La commande sed ci-dessous sauvegardera le fichier original sous le nom pg_hba.conf.bak et remplacera peer par trust pour les connexions locales.
sudo sed -i.bak 's/^local\s\+all\s\+all\s\+peer/local all all trust/' /etc/postgresql/14/main/pg_hba.conf
Rechargez PostgreSQL pour appliquer les modifications :
sudo service postgresql reload
-
Insérer des données dans la table sales_data :
Reconnectez-vous à la base de données en tant qu'utilisateur postgres.
sudo -u postgres psql -d reporting_db
Insérez quelques données d'exemple dans la table sales_data à des fins de test.
INSERT INTO sales_data (product, amount) VALUES ('Laptop', 1200.00), ('Mouse', 25.00), ('Keyboard', 75.00);
Vous devriez voir la sortie suivante :
INSERT 0 3
Quittez le shell psql.
\q
-
Se connecter à la base de données reporting_db en tant que report_user :
Ouvrez une nouvelle fenêtre de terminal et utilisez la commande suivante :
psql -d reporting_db -U report_user
Vous serez connecté à la base de données en tant que report_user sans invite de mot de passe.
-
Tester les privilèges :
Maintenant, essayez de sélectionner des données de la table sales_data :
SELECT * FROM sales_data;
Vous devriez voir les données que vous avez insérées :
id | product | amount
----+----------+--------
1 | Laptop | 1200.00
2 | Mouse | 25.00
3 | Keyboard | 75.00
(3 rows)
Si vous voyez cette sortie, cela signifie que report_user possède le privilège SELECT sur la table sales_data, qui a été accordé via le rôle reporting_role.
Quittez le shell psql.
\q