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
Créer des agents dans Microsoft 365 Copilot
Insight vous guide dans l’utilisation de la nouvelle expérience de création d’agents dans Microsoft Copilot Studio, disponible dans Copilot Chat. Découvrez les étapes clés pour concevoir, configurer et déployer ces nouveaux agents et injecter la puissance de l’IA directement dans le flux de travail.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- À l’aube de 2026, le SaaS entre dans une nouvelle phase
- Face à l’urgence écologique, l’IT doit faire sa révolution
- IoT et cybersécurité : les bases que chaque décideur doit maîtriser
- AWS re:Invent 2025 : décryptage des grandes innovations qui vont transformer le cloud
Articles les + lus
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
Top 5 TechnoVision 2026 des tendances technologiques à suivre de près !
À la une de la chaîne Tech
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
- Top 5 TechnoVision 2026 des tendances technologiques à suivre de près !
