Je suis en train de lire un livre sur SQL. Dans ce livre, il y a le terme Requête Ad Hoc ce que je ne comprends pas.
Qu'est-ce qu'une requête ad hoc ?
Je suis en train de lire un livre sur SQL. Dans ce livre, il y a le terme Requête Ad Hoc ce que je ne comprends pas.
Qu'est-ce qu'une requête ad hoc ?
Ad hoc signifie en latin "à cette fin". On pourrait l'appeler une requête "à la volée", ou une requête "juste comme ça". C'est le genre de requête SQL que vous tapez en vrac lorsque vous en avez besoin.
var newSqlQuery = "SELECT * FROM table WHERE id = " + myId;
...qui est une requête entièrement différente à chaque fois que cette ligne de code est exécutée, en fonction de la valeur du paramètre myId
. Le contraire d'une requête ad hoc est une requête prédéfinie telle qu'une procédure stockée, dans laquelle vous avez créé une requête unique dans le but général de sélectionner une table (par exemple) et de transmettre l'ID comme variable.
@David Hedlund votre requête est vulnérable à SQL injection attacks
...Vous devez utiliser le paramètre.
@Paridokht : Certainement. Je ne préconise pas cette utilisation, j'explique le concept de requête ad hoc, ce qui était la question.
@DavidHedlund : Oui, je comprends mais peut-être est-il préférable de le mentionner dans votre réponse car il y a des utilisateurs qui lisent ceci et n'ont aucune idée de cette attaque.
Une requête ad hoc est une requête qui ne peut être déterminée avant le moment où elle est émise. Elle est créée afin d'obtenir des informations lorsque le besoin s'en fait sentir et consiste en un langage SQL construit dynamiquement, généralement par des outils d'interrogation résidant sur le bureau.
Vérifiez : http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html
Il convient également d'ajouter que les requêtes ad hoc sont vulnérables aux attaques par injection SQL. Nous devrions essayer d'éviter de l'utiliser et utiliser plutôt des SQL paramétrés ( comme PreparedStatement en Java ).
Une requête ad-hoc est pas vulnérable à l'injection SQL. Une requête non paramétrée qui accepte les entrées de l'utilisateur est vulnérable à une injection SQL.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.