> Tech > Ajouter de la logique et de la sécurité aux UDTF

Ajouter de la logique et de la sécurité aux UDTF

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

Les UDTF ont un point commun avec les SP : la possibilité de traiter des instructions logiques SPL. La figure 2 montre une table Employee Master et une table de référence croisée qui associe le profil utilisateur OS/400 d'un manager avec les enregistrements de ses employés dans la table Employee

Ajouter de la logique et de la sécurité aux UDTF

Master.
La figure 3 montre une UDTF qui
permet au manager d’un employé – et
à  personne d’autre – d’extraire des informations
en interrogeant la table
Employee Master. Cette UDTF contient
des instructions SPL entre les
mots-clés Begin et Return. En particulier,
cette UDTF fait un test Not Exists
pour s’assurer que l’utilisateur qui demande
les données est un manager
avec au moins un employé. Si ce test
ne trouve pas d’enregistrements, la
procédure stockée signale une exception
et se termine. (Pour plus d’informations
sur le coding des instructions
logiques SPL et le traitement des erreurs,
voir les références dans Autres
lectures.)
Deux options de cette instruction
Create Function de l’UDTF méritent une explication. La première est
« Cardinality 10 ». En spécifiant l’entier
Cardinality, on aide l’optimiseur de requêtes
à  déterminer comment exécuter
au mieux la requête qui référence
l’UDTF, et donc la valeur de cet entier
est la meilleure supposition du programmeur
quant au nombre de lignes
que l’UDTF renverra en moyenne. La
seconde option est USRPRF=*OWNER.
Ce paramètre de l’instruction Set
Option détermine si l’UDTF s’exécute
avec l’autorité de l’utilisateur ou, dans
ce cas, avec l’autorité du propriétaire
de l’UDTF.
Cette option est l’équivalent du paramètre
USRPRF que l’on trouve dans
les diverses commandes de création de
programme. L’option USRPRF est particulièrement
intéressante dans un environnement
client/serveur où la
connexion à  l’iSeries à  partir du système
client est supposée être établie
avec un profil utilisateur possédant
une autorité minimale. Dans l’idéal, les
profils utilisateur ne devraient jamais
avoir le droit d’interroger des tables directement.
Au lieu de cela, certains utilisateurs
ne devraient avoir qu’un accès
temporaire aux données via une procédure
stockée ou UDTF. En procédant
ainsi, un programme maîtrise toujours
la manière dont les utilisateurs
peuvent accéder aux données et les
modifier. En supposant que le propriétaire
de l’UDTF ait l’autorité de lecture
sur la table EmpMast et que l’utilisateur
demandeur ne l’ait pas, l’option
USRPRF=*OWNER accorde à  l’utilisateur
demandeur un accès en lecture
temporaire à  la table EmpMast.
Pour illustrer encore mieux en quoi
il est intéressant que les UDTF incluent
des instructions multiples, vous pourriez
ajouter une instruction Insert pour
enregistrer qui a accédé aux données,
et quand, dans une table d’audit. Voici
un exemple d’utilisation de Retrieve-
EmployeeInfo dans une instruction
Select :

Select EmpInfo.*
From Table(RetrieveEmployeeInfo())
As EmpInfo

Bien que cette UDTF n’ait pas de
paramètres, le couple de parenthèses
() reste nécessaire à  la fin du nom de la
fonction.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

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