> Tech > Autorité adoptée par programme

Autorité adoptée par programme

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Pour le développement d’applications modernes, y compris du genre client/serveur et web, il est de plus en plus important que l’accès à la base de données soit sécurisé. Pour protéger l’intégrité du système, il faut que les utilisateurs distants puissent accéder à la base de données sans exposer le système

Autorité adoptée par programme

à des attaques malveillantes.

Pour offrir un tel accès, la méthode la plus simple consiste à utiliser l’autorité adoptée par programme. Pour utiliser celle-ci, le programmeur doit compiler une procédure ou un programme (pour les déclencheurs et les fonctions) avec l’option USRPRF(*OWNER). Ce paramètre de commande apparaît sur pratiquement toutes les commandes de compilation. Avec cette option, un utilisateur peut appeler une procédure ou une fonction et l’exécuter en utilisant les autorités du possesseur du programme (en plus des autorités utilisateur et publiques). Ainsi un programmeur peut offrir à des utilisateurs le moyen de changer ou de visualiser des données, contrairement à ce qu’ils pourraient faire normalement. Cependant, cette possibilité n’existe que pour les tâches spécifiques incluses dans le programme. Cette technique est particulièrement utile pour accorder cette possibilité à des clients et sites Web distants sans exposer dangereusement votre base de données.

La figure 2 montre une application qui permet à une application sur PC d’ajouter une commande au fichier des en-têtes de commandes. L’utilisateur du PC exécute une application Visual Basic (VB) et se connecte au System i à l’aide d’un profil spécial nommé PCVBUSR créé juste pour cette application. Ce profil a des droits très limités et ne peut pas accéder aux fichiers base de données ou à la plupart des programmes applicatifs. Les seuls objets qu’il peut utiliser sont ceux d’une bibliothèque ouverte au public. Ces programmes peuvent être exécutés en tant que procédures stockées à partir de SQL, à l’aide de la syntaxe suivante :

CALL ADD_ORD(123456, ‘ITEM1’,19)

Le code SQL suivant pour ADD_ORD autorise des réceptions dans trois paramètres : un numéro de commande, un numéro d’article et une quantité. En utilisant ces trois variables, une instruction Insert est émise, ajoutant un nouvel enregistrement à la table ORDMAST.

CREATE PROCEDURE ADD_INV(IN Ord DECIMAL(6,0)
IN Itm CHAR(7), IN Qty DECIMAL(7,2)) LANGUAGE SQL MODIFIES SQL DATA
BEGIN INSERT INTO ORDMAST VALUES(Ord, Itm, Qty) END

Pour des procédures stockées écrites en SQL, la valeur par défaut pour l’attribut USRPRF est *OWNER si la convention de nommage *SQL est utilisée et *USER si c’est la convention de nommage *SYS. Cependant, la meilleure pratique consiste à utiliser une clause Set Option sur l’instruction Create Procedure pour définir l’attribut USRPRF explicitement, comme dans l’exemple précédent. Les procédures stockées écrites dans d’autres langages, comme RPGLE, doivent être définies pendant la compilation du programme.

Du fait que la procédure stockée ADD_INV appartient à un profil utilisateur avec l’autorité appropriée, tous les utilisateurs qui peuvent accéder à la procédure peuvent ajouter des lignes à la table ORDMAST – même si elle réside dans une bibliothèque à laquelle ils n’ont pas accès par leur propre profil utilisateur. Par conséquent, ils ne peuvent pas modifier la base de données en exécutant directement des instructions SQL comme INSERT, UPDATE et DELETE. Ils ne peuvent effectuer que les tâches que le développeur a incluses dans la procédure, en même temps que toutes les éditions et journalisations nécessaires. Cette faculté de donner une possibilité à un utilisateur distant sans ouvrir l’accès à la base de données elle-même souligne tout l’intérêt des procédures stockées dans le modèle de sécurité de toute application moderne.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis d'experts et témoignages clients et ainsi, retrouvez les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et collaboration, Impression et capture et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010