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
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
- Afficher les icônes cachées dans la barre de notification
- Activer la mise en veille prolongée dans Windows 10
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Les 6 étapes vers un diagnostic réussi
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- Analyse Patch Tuesday Juin 2026
- La bataille de la 6G se gagne dans la donnée en temps réel
- BlueSecure repense la sensibilisation à la cybersécurité avec des formats immersifs et engageants
- Les agents d’IA fragilisent la sécurité : pour les sécuriser, inutile de repartir de zéro
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
