Audit Fonction SQL

IBM i, configuration, commandes, ...
Répondre
fcarton
Messages : 9
Enregistré le : mar. 20 oct. 2020, 09:28:56

Audit Fonction SQL

Message 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

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Audit Fonction SQL

Message 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
Nathanaël

fcarton
Messages : 9
Enregistré le : mar. 20 oct. 2020, 09:28:56

Re: Audit Fonction SQL

Message 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

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Audit Fonction SQL

Message 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
Nathanaël

fcarton
Messages : 9
Enregistré le : mar. 20 oct. 2020, 09:28:56

Re: Audit Fonction SQL

Message 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 !

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Audit Fonction SQL

Message par nbonnet »

Voté !
Nathanaël

Répondre