Epreuve de Pratique des Technologies Informatiques Session 2008
Attribution des droits sur les tables pour les rôles.
GRANT ALL ON fiches, categories, utilisateurs, revisions, fichiers TO GROUP Administrateurs ;
GRANT ALL ON fiches,fichiers,revisions, utilisateurs TO GROUP Gestionnaires ;
GRANT SELECT ON utilisateurs, categories TO GROUP Gestionnaires ;
GRANT SELECT ON fiches, fichiers, revisions, categories, utilisateurs TO GROUP Utilisateurs ;
Pour que les utilisateurs puissent faire appel à la requête SEQUENCE qui permet d’incrémenter les
champs de type SERIAL, il faut leur accorder les droits d’exécuter cette requête sur les séquences
correspondantes.
GRANT ALL ON categories_cat_id_seq, fiches_fiche_id_seq, fichiers_fichier_id_seq, utilisateurs_user_id_seq,
revisions_modif_id_seq TO GROUP Administrateurs,Gestionnaires ;
En se connectant avec le compte « utilisateur », le bon fonctionnement des droits peut être vérifié.
Requête de recherche de données.
La requête suivante permet une recherche utilisant l’ensemble des critères simultanément :
Recherche par mots-clés (port ET rdp OU relai ET messagerie)
Recherche par catégorie (Microsoft)
Recherche par auteur de la fiche (DUPONT)
SELECT cat_nom, fiche_date, fiche_sujet, utilisateurs.user_nom, utilisateurs.user_prenom,
fiche_contenu
FROM categories, fiches, utilisateurs
WHERE (SELECT cat_id FROM categories WHERE cat_nom = 'Microsoft') IN (cat_parent,
categories.cat_id)
AND utilisateurs.user_nom = 'DUPONT'
AND categories.cat_id = fiches.cat_id
AND fiches.user_id = utilisateurs.user_id
AND to_tsvector('french', fiche_sujet || fiche_contenu) @@ to_tsquery ('french','port & rdp |
relai & messagerie')
ORDER BY fiches.fiche_id DESC LIMIT 10 OFFSET 0;
Résultat après exécution de cette requête sous pgAdmin III :
Les catégories « Windows Server » et « Windows XP » sont des sous-catégories de « Microsoft »
On constate que l’on obtient uniquement les données créées par l’utilisateur recherché dans la catégorie
voulue et dont les mots clés figurent dans le sujet ou le contenu. La recherche par mots-clés est assurée
par l’outil « tsearch2 » de PostgreSQL qui se base sur l’utilisation d’un dictionnaire et d’une liste de mots
d’exclusion.
Il est également possible de classer les résultats selon un score de pertinence afin de présenter à
l’utilisateur les résultats qui vont au mieux correspondre à sa recherche dans le cas d’un tri avec la clause
ORDER BY sur le score généré par « tsearch2 ».