Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TQuery.open führt DDL-/DML-Anweisung aus (https://www.delphipraxis.net/73131-tquery-open-fuehrt-ddl-dml-anweisung-aus.html)

thlicht 14. Jul 2006 07:14

Re: TQuery.open führt DDL-/DML-Anweisung aus
 
Hallo zusammen und vielen Dank für die vielen Anregungen, die noch in den letzten beiträgen auftauchten.

Also Hintergund des Problemes ist eine Anwednung, die es dem Admin des Systems ermöglichen soll, individuelle Auswertungen in SQL zu formulieren und als Textfile oder BLOB zu speichern. Anwender können dann diese Auswertungen in einem Dialog auswählen und ausführen (mit dem eingangs erwähnten OPEN). Dieses Admins, die die Abfragen erstellen, kennnen das Datenmodell und besitzen auch einen gültigen Account um Daten zu ändern (DML) oder zum Stukturen zu maipulieren (DDL). Aber ihr habt natürlich recht, das Beste ist ein konsequenter Zugriffsschutz über readonly-VIWEs. Mit dem Thema SQL-Injection muss ich mich gesondert befassen, das Problem hatte ich so noch gar nicht beachtet.

hoika 19. Jul 2006 08:14

Re: TQuery.open führt DDL-/DML-Anweisung aus
 
Hallo,

ich würde einfach prüfen, ob das erste Wort der Abfrage ein SELECT ist,
und wenn nicht, war es das.
Natürlich musst du aufpassen, dass er auch ein ' Select' machen könnte.

Heiko

mkinzler 19. Jul 2006 08:42

Re: TQuery.open führt DDL-/DML-Anweisung aus
 
Zitat:

Zitat von hoika
Hallo,

ich würde einfach prüfen, ob das erste Wort der Abfrage ein SELECT ist,
und wenn nicht, war es das.
Natürlich musst du aufpassen, dass er auch ein ' Select' machen könnte.

Heiko

Dann wäre es einfach nur den SELECT zu granten.

thlicht 19. Jul 2006 09:50

Re: TQuery.open führt DDL-/DML-Anweisung aus
 
Hallo zusammen,

die letzten beiden Tipps klingen interessant, denn real betrachtet kommen eh nur Admins in Frage, die Querries zu erstellen. Mit einem speziellen "Report"-User der nur ein SELECT ausführen darf wäre aus praktischer Sicht wohl die einfachste Lösung umsetzbar und Datenmanipulation weitegehend ausgeschlossen. Klasse Idee ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz