You are on page 1of 10

Mise en oeuvre de la scurit des menus sous Forms Builder

par Souleymane Danem ()

Date de publication : 21 Juillet 2008 Dernire mise jour :

Comme tous les outils de dveloppement rapide d'applications, Forms Builder offre la possibilit d'activer et / ou de dsactiver des lments de menu en fonction des rles de l'utilisateur qui se connecte une application. L'objectif de cet article est de mettre au point un guide complet et pdagogique pour l'implmentation de la scurit des menus dans Forms Builder. Prrquis : niveau 1 en administration oracle, initiation au dveloppement sous Forms Builder

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

I - Introduction............................................................................................................................................................. 3 II - Prerequis................................................................................................................................................................3 III - Configuration.........................................................................................................................................................3 IV - Cration d'une table.............................................................................................................................................4 V - Mise en place des rles et privilges................................................................................................................... 4 VI - Cration des utilisateurs...................................................................................................................................... 4 VI - Cration des formulaires et du menu.................................................................................................................. 5 VIII - Association des rles au menu......................................................................................................................... 7 IX - Mise en place de la vue FRM50_ENABLED_ROLES ...................................................................................9

-2Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

I - Introduction
Lorsqu'il s'agit de mettre en oeuvre les notions de scurit dans les applications, il devient vite fastidieux de grer les droits d'accs et de modification aux donnes via le code. Pour se faire, le noyau Oracle inclu un dispositif appel : Rle. Celui-ci permet de dfinir un profil, de lui associer les droits dsirs sur les objets, puis d'associer ce ou ces rles un utilisateur. Oracle Forms permet galement d'utiliser ces rles pour mettre en oeuvre la scurit au niveau des menus. Selon le(s) rle(s) affect(s) l'utilisateur connect (au sens compte Oracle), Forms gre automatiquement l'affichage ou le masquage des options du menu.

II - Prerequis
On suppose que les utilisateurs de ce tutorial dispose des sources pour installer le noyau Oracle et les outils de dveloppement (Developer/2000, Developer 6i, Developer 9i, #). Pour l'installation des produits Oracle, voir sur www.oracle.com, www.developpez.com. Tlcharger le code source mise en oeuvre dans ce tutoriel : asecmenu.zip

III - Configuration
Par simplification, les chemins des diffrents fichiers de l'application ont t " cods en dur ". Pour les initis au dveloppement sous Forms Builder, il sera ais : D'ouvrir et de modifier les fichiers *.fmb et *.mmb ; De paramtrer la base de registre ou les fichiers de configuration ncessaires.

Il faut donc crer le rpertoire " C:\ASECMENU " pour y mettre les fichiers.

-3Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

IV - Cration d'une table


Commenons par crer la table TSDANEM qui sera utilise pour mettre en place : Un menu sur lequel on appliquera la scurit des menus ; Des formulaires qui seront appels avec des utilisateurs diffrents partir du menu.

Soit la table TSDANEM dfinie comme suit :

CREATE TABLE TSDANEM (code_sd number primary key, nom_sd varchar2(25) not null, pre_sd varchar2(50) not null, age_sd number(3) constraint ck_age check(age_sd >15), mail_sd varchar2(50) ) ;

V - Mise en place des rles et privilges


La seconde tape pour la mise en oeuvre de la scurit des menus consiste crer des rles au niveau de la base de donnes Oracle. Ces rles seront affects aux diffrents utilisateurs qui seront crs dans l'tape 3. Ci-dessous le script de cration des rles :

CREATE CREATE CREATE CREATE CREATE CREATE CREATE

ROLE ROLE ROLE ROLE ROLE ROLE ROLE

R_S_TSDANEM ; R_SI_TSDANEM ; R_SU_TSDANEM ; R_SD_TSDANEM ; R_SIU_TSDANEM ; R_SIUD_TSDANEM ; R_CON ;

-- Permet seulement des SELECT sur TSDANEM -- Permet seulement des INSERT sur TSDANEM -- Permet seulement des UPDATE sur TSDANEM -- Permet seulement des DELETE sur TSDANEM

Aprs avoir mis en place les rles ncessaires, attribuons les privilges objet (sur la table TSDANEM) aux rles crs plus haut.

GRANT GRANT GRANT GRANT GRANT GRANT GRANT

select ON TSDANEM to R_S_TSDANEM ; select, insert ON TSDANEM to R_SI_TSDANEM ; select, update ON TSDANEM to R_SU_TSDANEM ; select, delete ON TSDANEM TO R_SD_TSDANEM ; select, insert, update ON TSDANEM to R_SIU_TSDANEM ; select, insert, update, delete ON TSDANEM to R_SIUD_TSDANEM ; create session to R_CON ;

VI - Cration des utilisateurs


A prsent, il faut crer les utilisateurs ncessaires. Les utilisateurs, avec des rles diffrents, se connecteront la mini application constitue des formulaires et du menu. Soit les utilisateurs ci-dessous :

CREATE USER usd_s IDENTIFIED BY psd_s ; CREATE USER usd_si IDENTIFIED BY psd_si ;

-4Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

CREATE CREATE CREATE CREATE

USER USER USER USER

usd_su IDENTIFIED BY psd_su ; usd_sd IDENTIFIED BY psd_sd ; usd_sui IDENTIFIED BY psd_siu ; usd_suid IDENTIFIED BY psd_siud ;

Aprs avoir cr les utilisateurs, on leur attribute les rles adquats :

GRANT GRANT GRANT GRANT GRANT GRANT GRANT

R_S_TSDANEM to usd_s ; R_SI_TSDANEM to usd_si ; R_SU_TSDANEM to usd_su ; R_SD_TSDANEM to usd_sd ; R_SIU_TSDANEM to usd_sui ; R_SIUD_TSDANEM to usd_suid ; R_CON to usd_s, usd_si, usd_su, usd_sd, usd_sui, usd_suid ;

VI - Cration des formulaires et du menu


Aprs avoir cr la table, mis en place les rles et cr les utilisateurs sous SQL*Plus, passons Forms Builder pour raliser les formulaires et le menu adquats. Soit le menu ci-dessous :

Le rle R_S_TSDANEM est slectionn pour l'lment de menu FRM_S_TSDANEM Le rle R_SI_TSDANEM est slectionn pour l'lment de menu FRM_SI_TSDANEM Le rle R_SU_TSDANEM est slectionn pour l'lment de menu FRM_SU_TSDANEM

Les codes classiques d'appel des formulaires sont associs aux lments du menu. Pour le cas qui nous concerne, prenons par exemple :

OPEN_FORM ('nom_formulaire') ; EXIT_FORM pour l'lment " Quitter " ;

Les formulaires suivants (voir l'cran de la page suivante) seront labors :

FRM_S_TSDANEM FRM_SI_TSDANEM

-- Nom du formulaire pour afficher les donnes de la table -- Nom du formulaire pour insrer des donnes dans la table

-5Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

FRM_SU_TSDANEM FRM_SD_TSDANEM FRM_SIU_TSDANEM FRM_SIUD_TSDANEM FRM_PRINCIPAL

Chaque formulaire est base sur la table TSDANEM.

-6Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

VIII - Association des rles au menu


C'est l'une des tapes les plus importantes. Il faut procder comme suit et de faon minutieuse Attribuer tous les rles crs plus haut au module M_SDANEM en utilisant la proprit " Rles module ". Cette opration est effectue avant d'attribuer un accs rle aux diffrents lments du menu (voir l'cran de la page suivante) : Il faut double-cliquer sur la proprit " Rle module " pour ouvrir la fentre ; Ensuite, il faut saisir les noms de rles ;

Positionner la proprit de module Menu " Scurit " Oui:

Pour chaque lment de menu, attribuer des accs rle en utilisant la proprit " Rle lment " Positionner la proprit d'lment de menu " Afficher sans droit d'accs " Non. Cela permet de rendre invisible un lment de menu en fonction des rles de l'utilisateur connect :

-7Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

Compiler (CTRL +T) le module M_SDANEM pour gnrer l'excutable *.mmx Associer le module M_SDANEM tous les formulaires :

-8Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

Compiler (CTRL + T) tous les modules Forms crs dans la partie 4

IX - Mise en place de la vue FRM50_ENABLED_ROLES


La vue FRM50_ENABLED_ROLES doit exister dans la base de donnes pour que la scurit des menus puisse fonctionner correctement. Un administrateur de bases de donnes (connect comme SYSTEM) doit excuter le script FRMxxSEC.SQL (qui se trouve dans le rpertoire d'installation de Forms) avec : xx = 45 pour Forms 4.5 xx = 60 pour Forms 6i xx = 90 pour Forms 9i ...

Ensuite, il faut excuter la requte ci-dessous (qui n'existe pas toujours dans les scripts du genre FRMxxSEQ.SQL) :

GRANT select ON FRM50_ENABLED_ROLES TO public ;

ou

-9Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

Mise en oeuvre de la scurit des menus sous Forms Builder par Souleymane Danem ()

GRANT select ON FRM50_ENABLED_ROLES TO &nom_user ;

Cependant, la seconde requte offre plus de scurit. Chacune des deux requtes doit tre lance avec l'utilisateur SYSTEM.

- 10 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://vicenzo.developpez.com/tutoriels/forms/securite_menus/

You might also like