Zu Variante 2: wieso nicht einfach nur SELECT als erstes Wort zulassen?
weil ich viel zu weit gedacht habe (gleichzeitiges vorkommen von select und insert in einer Abfrage) und das Einfachste mir nicht in den Sinn gekommen ist.
Ansonsten müsste man auf jedes Wort achten, das zur Manipulation dient (CREATE und DROP fehlen in Deiner Auflistung z.B.)
stimmt!
Wobei ich persönlich doch die Variante 1 vorziehen würde mit den Views und einer sauberen Benutzerzugriffsregelung.