# Sécurité SQL

## 🔗 Qu'est-ce que SQL Security ?

SQL Security vous permet de restreindre l'accès au sondage à une ligne donnée d'une table SQL Server existante et de réutiliser les données de cette requête pour le piping n'importe où dans les questions ou réponses de votre sondage en utilisant les [data attributes](https://docs.ngsurvey.com/fr/form-management/security/data-attributes).\
\
Chaque requête peut être paramétrée en utilisant des entrées du répondant. Vous pouvez ajouter de nouvelles variables pour construire une interface utilisateur permettant au répondant de les remplir. Ces variables peuvent ensuite être utilisées dans votre requête comme des paramètres SQL standards. <br>

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FWm2qhJO7BVPcAyEe84VV%2Fimage.png?alt=media\&token=495576c3-4291-400d-aef9-741418a31948)\
\
\
Si vous souhaitez remplir une variable à partir d'une querystring, vous pouvez créer une variable de type "Hidden" et y injecter par défaut une valeur depuis la querystring comme illustré ci‑dessous où un identifiant client est injecté depuis la variable de querystring "customerid".

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FF1HC5DMKeWwuEGRD5uSK%2Fimage.png?alt=media\&token=c91b99df-810d-40a6-8187-09bca0adb3ff)

{% hint style="info" %}
Si votre interface utilisateur est composée uniquement de variables cachées, ngSurvey appellera automatiquement la requête une fois le sondage chargé et aucune interface utilisateur ne sera affichée.
{% endhint %}

{% hint style="warning" %}
L'accès ne sera accordé au répondant que si la requête renvoie une ligne ou si l'option **Access only to SQL entries** est désactivée.
{% endhint %}

Une fois que le répondant a terminé le sondage et soumis ses réponses, ngSurvey enregistrera les données SQL récupérées en même temps que les réponses du répondant.

## 🔅 Propriétés de SQL Security

* **`Connexions disponibles`** Connexion qui sera utilisée pour se connecter à votre base de données
* **`Requête SQL`** Requête SQL ou appel de procédure stockée qui retournera la ligne et ses colonnes.&#x20;
* **`Autoriser les soumissions multiples`** permet à la même ligne de soumettre plusieurs fois sur le même sondage. &#x20;
* **`Message d'introduction`** sera affiché au‑dessus de l'interface des champs lorsque les répondants tentent d'accéder au sondage.
* **`Message de clé invalide`** message d'erreur affiché à l'utilisateur si aucune ligne n'est retournée en fonction de la valeur saisie.

{% hint style="success" %}
Cet élément de sécurité peut être utilisé comme [fournisseur de clé](https://docs.ngsurvey.com/fr/form-management/security/key-provider-concepts).&#x20;
{% endhint %}
