Page 1 sur 1

Audit Fonction SQL

Posté : mer. 11 janv. 2023, 09:15:03
par fcarton
Bonjour,

Je souhaite tracer l'utilisation de fonctions SQL. Du moins connaitre la date de dernière utilisation de nos fonctions SQL.
Les fonctions SQL Internes sont bien présente dans OBJECT_STATISTICS, mais le problème réside sur les fonctions externe qui ne sont pas tracées dans cette table.

Avez vous un moyen de trouver les informations d'utilisation des fonctions SQL Externes ?

Merci

Re: Audit Fonction SQL

Posté : mer. 11 janv. 2023, 11:03:21
par nbonnet
Bonjour,

On parle bien de :
- fonctions internes = fonctions écrites en SQL
- fonctions externes = fonctions écrites en RPG/COBOL

Dans OBJECT_STATISTICS, on accède aux propriétés des objets dans les bibliothèques.
Les noms des fonctions SQL peuvent être différents, il faut bien partir de QSYS2.SYSFUNCS pour toruver la relation nom SQL => objet.
Et avec l'objet interroger OBJECT_STATISTICS.

Maintenant je ne suis pas sur que les dates d'utilisation soient mises à jour

Re: Audit Fonction SQL

Posté : mer. 11 janv. 2023, 15:08:46
par fcarton
Bonjour,

Oui on parle bien de la même chose.
Par contre, nous avons des programmes de services accédés soit par l'intermédiaire de fonctions SQL externe soit en direct dans nos programmes RPG.
Je ne peut donc pas me fier à la date d'utilisation du programme de service. Vérifier l'usage du programme de service ne me permet pas d'avoir l'usage de la fonction SQL externe.

Par ailleurs, j'ai essayé de mettre en place de l'audit sur le programme de service puis exécuté la fonctions SQL associée, mais aucune trace dans le journal d'audit.
C'est plutot moche !

C'est bien dommage, il semble y avoir un trou dans la raquette :D

Pour completer dans SYSFUNCS j'ai
SPECIFIC_SCHEMA SPECIFIC_NAME ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_CREATED ROUTINE_BODY EXTERNAL_NAME EXTERNAL_LANGUAGE
TIEOBJ TRAI18N01F TIEOBJ GETTRADUCTION 28/12/2022 EXTERNAL TIEOBJ/I18N_S(GETTRADUCTIONI18N) RPGLE

Dans OBJECT_STATISTICS

SELECT * FROM TABLE(QSYS2.OBJECT_STATISTICS('TIEOBJ', '*ALL')) AS x
WHERE x.OBJNAME = 'TRAI18N01F' OR x.OBJLONGNAME = 'TRAI18N01F' OR
x.OBJNAME = 'GETTRADUCTION' OR x.OBJLONGNAME = 'GETTRADUCTION' OR
x.OBJNAME = 'I18N_S' OR x.OBJLONGNAME = 'I18N_S'

je n'ai qu'une ligne pour I18N_S

OBJNAME OBJTYPE OBJCREATED OBJSIZE OBJLONGNAME LAST_USED_TIMESTAMP
I18N_S *SRVPGM 28/12/2022 843776 11/01/2023

Re: Audit Fonction SQL

Posté : mer. 11 janv. 2023, 16:36:17
par nbonnet
Je continue de chercher (la question tourne au bureau !)

Pour OBJECT_STATISTICS, il n'y a qu'une seule ligne : oui, il n'y a qu'un seul objet, qui est indiqué par ROUTINE_BODY EXTERNAL_NAME => TIEOBJ/I18N_S de type *SRVPGM
Les autres informations sont des concepts SQL, ici du "catalogue pur" sans objet natif correspondant

Re: Audit Fonction SQL

Posté : lun. 23 janv. 2023, 11:53:21
par fcarton
Bonjour,

Après avoir sollicité plusieurs personnes, je n'ai pas trouvé de solution à mon problème. J'ai donc ouvert cette suggestion chez IBM.

https://ibm-power-systems.ideas.ibm.com ... BMI-I-3519

Merci !

Re: Audit Fonction SQL

Posté : mar. 24 janv. 2023, 18:31:02
par nbonnet
Voté !