Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| requetes [2013/02/14 10:51] – florian | requetes [2023/03/17 09:56] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ====== |
| **Attention :** il est impératif que chaque élément du dossier ait une correspondance dans chacune des requêtes ! | **Attention :** il est impératif que chaque élément du dossier ait une correspondance dans chacune des requêtes ! | ||
| - | ====== Tutoriaux | + | ===== Recherche Globale |
| - | ===== Arborescence et droits ===== | + | Comment sont sélectionnés les champs retournés dans le résultat de la recherche globale : |
| - | Objectif : Mettre en place une requête | + | * L' |
| + | * Tout champ de la requête | ||
| + | * Un champ dont le rang est compris entre le rang 1 et 3 peut être présenté (exception faite des champs de type " | ||
| - | Avant-propos : La gestion des droits sur les requêtes s' | ||
| - | et nous voulons restreindre l' | ||
| - | Solution : Nous allons créer une table de droits qui fera le lien entre un champ de notre table //métier// et le champ **SECUSR_SECGRPID** de la table **_secusr | ||
| - | ** | ||
| - | Exemple : Nous avons une table nommée **dossiers**, | + | ====== TUTORIAUX ===== |
| - | + | ||
| - | Table dossiers : | + | |
| - | ^ DOSSIERS_ID | + | |
| - | | 1 | 1 | Dossier Sanzot | + | |
| - | | 2 | 2 | Dossier top secret | + | |
| - | | 3 | 1 | Dossier COGIP | | + | |
| - | + | ||
| - | Le champ **DOSSIERS_TYPID** fait le lien avec la table listtypdossiers (il référence la clé primaire de cette table) et nous permettra via une jointure d' | + | |
| - | + | ||
| - | Table listtypdossiers : | + | |
| - | ^ LISTTYPDOSSIERS_ID ^ LISTTYPDOSSIERS_DESC ^ | + | |
| - | | 1 | DOSSIER TECHNIQUE | + | |
| - | | 2 | DOSSIER DIRECTION | + | |
| - | + | ||
| - | Dans notre système nous avons deux groupes d' | + | |
| - | Nous voulons que les utilisateurs de ces deux groupes aient accès à la requête **dossiers**. Mais nous ne voulons pas que les utilisateurs du groupe Technicien voient les dossiers du type //" | + | |
| - | On ne peut pas faire cela avec les rôles. Les rôles ne permettent pas de restreindre les accès à des résultats précis. | + | |
| - | + | ||
| - | Ce que nous pouvons faire c'est de déterminer quel groupe a accès à quel(s) type(s) de dossiers. | + | |
| - | Il nous faut une table supplémentaire : | + | |
| - | + | ||
| - | Table droitsdossiers : | + | |
| - | ^ DROITSDOSSIERS_ID ^ DROITSDOSSIERS_TYPID ^ DROITSDOSSIERS_SECGRPID ^ | + | |
| - | | 1 | 1 | 1 | | + | |
| - | | 2 | 2 | 1 | | + | |
| - | | 3 | 1 | 2 | | + | |
| - | + | ||
| - | Pour information voici ce que serait la table _secgrp : | + | |
| - | ^ SECGRP_ID ^ SECGRP_DESC ^ | + | |
| - | | 1 | Direction | + | |
| - | | 2 | Technicien | + | |
| - | + | ||
| - | + | ||
| - | A présent nous avons toutes les informations nécessaires dans la base de données pour simuler une gestion des droits dans notre requête. | + | |
| - | Pour cela nous allons : | + | |
| - | + | ||
| - | - Jointer la table dossiers et listtypdossiers sur les champs DOSSIERS_TYPID et LISTTYPDOSSIERS_ID | + | |
| - | - Jointer la table dossiers et droitsdossiers sur les champs DOSSIERS_TYPID et DROITSDOSSIERS_TYPID | + | |
| - | - Jointer la table droitsdossiers et _secusr sur les champs DROITSDOSSIERS_SECGRPID et SECUSR_SECGRPID | + | |
| - | - Créer une condition portant sur le champ SECUSR_ID pour que sa valeur soit égale à l'id de l' | + | |
| + | [[requetes: | ||