Kompliziert nicht, aber bei SQL (ODBC) bekommt man den originären SQL-String.
Nun muss man schon einen SQL-Interpreter stricken um bei allen möglichen SQL-Befehlen die verwendeten Dateien/Tabellen zu eruieren.

Ob Select, Insert, Update oder Delete erlaubt sind, ob Administrationsbefehle, Call's oder Create's möglich sind, u.v.m.

Allein die Select-Varianten sind schon sehr vielzählig.
Ausserdem kann man "einfache" Prüfungen durch Kombinationen von
CALL QCMDEXC "OVRDBF ..."
Select * from AnyTable
oder CREATE ALIAS/CREATE VIEW mit anschliessendem Select unterlaufen.

PCSACC/400 (ohne hier Werbung machen zu wollen) deckt alle diese Varianten zur korrekten Verhinderung von unerlaubten Zugriffen ab.

Standard-Objekt-Berechtigungen (App-User, Owner-PGM'e) werden immer noch zu selten verwendet und decken eben nicht alle Möglichkeiten ab.