4D v16.3

Méthode base Sur authentification SQL

Accueil

 
4D v16.3
Méthode base Sur authentification SQL

Méthode base Sur authentification SQL 


 

$1, $2, $3 -> Méthode base Sur authentification SQL -> $0 
Paramètre Type   Description
$1  Texte in Nom d’utilisateur
$2  Texte in Mot de passe
$3  Texte in (Facultatif) Adresse IP du client à l’origine de la requête
$0  Booléen in Vrai = requête acceptée, Faux = requête rejetée

  

La Méthode base Sur authentification SQL permet de filtrer les requêtes adressées au serveur SQL intégré de 4D. Le filtrage peut être effectué sur la base du nom, du mot de passe ainsi que (facultativement) de l’adresse IP de l’utilisateur. Le développeur peut utiliser sa propre table d’utilisateurs ou celle des utilisateurs 4D pour évaluer les identifiants de connexion. Une fois la connexion authentifiée, la commande CHANGER UTILISATEUR COURANT doit être appelée afin de contrôler les accès de la requête au sein de la base 4D.

Lorsqu’elle existe, la Méthode base Sur authentification SQL est automatiquement appelée par 4D ou 4D Server à chaque connexion externe au serveur SQL. Le système interne de gestion des utilisateurs de 4D n’est alors pas sollicité. La connexion n'est acceptée que si la méthode base retourne Vrai dans $0 et si la commande CHANGER UTILISATEUR COURANT a été exécutée avec succès. Si l'une des deux conditions n'est pas remplie, la requête est rejetée.

Note : L’instruction SQL LOGIN(SQL_INTERNAL;$utilisateur;$motdepasse) ne déclenche pas l’appel de la Méthode base Sur authentification SQL car il s’agit dans ce cas d’une connexion interne.

La méthode base reçoit jusqu’à trois paramètres de type Texte, passés par 4D ($1, $2 et $3), et retourne un booléen, $0. Voici la description de ces paramètres :

ParamètresTypeDescription
$1TexteNom d’utilisateur
$2TexteMot de passe
$3Texte(Facultatif) Adresse IP du client à l’origine de la requête(*)
$0BooléenVrai = requête acceptée, Faux = requête rejetée

(*) 4D retourne les adresses IPv4 dans un format hybride IPv6 comprenant un préfixe de 96 bits, par exemple ::ffff:192.168.2.34 pour l'adresse IPv4 192.168.2.34. Pour plus d'informations, reportez-vous à la section Prise en charge d’IP v6.

Vous devez déclarer ces paramètres de la manière suivante :

  //Méthode base Sur authentification SQL
 C_TEXTE($1;$2;$3)
 C_BOOLEEN($0)
 ... // Code pour la méthode

Le mot de passe ($2) est reçu en texte standard.

Vous devez contrôler les identifiants de la connexion SQL dans la Méthode base Sur authentification SQL. Par exemple, vous pouvez contrôler le nom et le mot de passe à l’aide d’une table d’utilisateurs personnalisée. Si les identifiants sont valides, passez Vrai dans $0. Sinon, passez Faux dans $0, dans ce cas la connexion est rejetée.

Si vous avez passé Vrai dans $0, vous devez ensuite appeler avec succès la commande CHANGER UTILISATEUR COURANT dans la Méthode base Sur authentification SQL pour que la requête soit acceptée et que 4D ouvre une session SQL pour l’utilisateur.
L’utilisation de la commande CHANGER UTILISATEUR COURANT permet de mettre en place un système d'authentification virtuelle ayant comme double avantage le contrôle des actions au sein de la connexion et le masquage pour l’extérieur des identifiants de la connexion dans la session SQL 4D.

Note : Si la Méthode base Sur authentification SQL n’existe pas, la connexion est évaluée à l’aide du système intégré de gestion des utilisateurs de 4D s’il est actif, c’est-à-dire si un mot de passe a été attribué au Super_Utilisateur. Si le système n'est pas actif, les utilisateurs sont connectés avec les droits du Super_Utilisateur (accès libre).

Cet exemple de Méthode base Sur authentification SQL vérifie que la demande de connexion provient du réseau interne, valide les identifiants puis affecte les droits d’utilisateur "sql_user" pour la session SQL.

 C_TEXTE($1;$2;$3)
 C_BOOLEEN($0)
  //$1 : utilisateur
  //$2 : mot de passe
  //{$3 : Adresse IP du client}
 APPELER SUR ERREUR("SQL_error")
 Si(checkInternalIP($3))
  //La méthode checkInternalIP vérifie que l’adresse IP est interne
    Si($1="victor") & ($2="hugo")
       CHANGER UTILISATEUR COURANT("sql_user";"")
       Si(OK=1)
          $0:=Vrai
       Sinon
          $0:=Faux
       Fin de si
    Sinon
       $0:=Faux
    Fin de si
 Sinon
    $0:=Faux
 Fin de si

 
PROPRIÉTÉS 

Produit : 4D
Thème : Méthodes base
Nom intl. : On SQL Authentication database method

 
HISTORIQUE 

Créé : 4D v11 SQL Release 2

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)