L'applicazione c # con cui sto lavorando esegue molte query T-SQL SELECT archiviate come stringhe in un database.
Queste query riguardano quasi tutti i dati di selezione e l'unione con diverse tabelle all'interno del database.
Alcune combinazioni non dovrebbero essere consentite, ad es. la colonna 1 dalla tabella X non deve essere restituita se la tabella Y viene unita sulla tabella X. Un esempio più semplice potrebbe essere "Non includere mai dati dalla tabella Z"
Ci sono molte di queste regole e al momento è compito dell'autore dell'SQL verificare che i dati restituiti non violino nessuna di queste regole.
Non posso modificare il database in alcun modo.
Quali opzioni ci sono per me per determinare se una query specifica violi una di queste regole?
È possibile determinare quali tabelle / colonne sono accessibili in una query?
Avrei bisogno che la soluzione fosse affidabile, ho considerato l'analisi dell'SQL, ad es. utilizzando un Regex, ma penso che questo sia in qualche modo inferiore al requisito "affidabile".