Datenbankmethode On SQL Authentication

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11.3 (Geändert)


Mit der Datenbankmethode On SQL Authentication können Sie Anfragen filtern, die an den integrierten SQL Server von 4D gesendet werden. Der Filter kann auf Name und Kennwort sowie optional auf der IP Adresse des Benutzers basieren. Entwickler können ihre eigene Benutzertabelle oder die der 4D Benutzer zum Prüfen der Identifizierer der Verbindung verwenden. Wurde die Anmeldung authentifiziert, muss der Befehl CHANGE CURRENT USER aufgerufen werden, um den Zugriff auf Anfragen innerhalb der 4D Datenbank zu steuern.

4D oder 4D Server rufen die Datenbankmethode On SQL Authentication - sofern vorhanden - bei jeder externen Anmeldung an den SQL Server automatisch auf. Deshalb wird das interne System zum Verwalten von 4D Benutzern nicht aktiviert. Die Verbindung wird nur angenommen, wenn die Datenbankmethode in $0 Wahr zurückgibt und der Befehl CHANGE CURRENT USER erfolgreich ausgeführt wurde. Ist eine dieser Bedingungen nicht erfüllt, wird die Anfrage verweigert.

Hinweis: Die Anweisung SQL LOGIN(SQL_INTERNAL;$Benutzer;$Kennwort) ruft nicht die Datenbankmethode On SQL Authentication auf, da es sich in diesem Fall um eine interne Anmeldung handelt.

Die Datenbankmethode empfängt von 4D bis zu drei Parameter vom Typ ($1, $2, $3) und gibt $0 als Boolean Wert zurück:

ParameterTypBeschreibung
$1TextBenutzername
$2TextKennwort
$3Text(optional) IP Adresse des Client am Ursprung der Anfrage

$0 Boolean Wahr= Anfrage angenommen, Falsch = Anfrage verweigert

Sie müssen diese Parameter folgendermaßen deklarieren:

      ` Datenbankmethode On Web Authentication

   C_TEXT($1;$2;$3)
   C_BOOLEAN($0)
      ` Code für Methode

Das Kennwort ($2) wird als Standardtext empfangen.

Die Identifizierer der SQL Verbindung müssen Sie über die Datenbankmethode On SQL Authentication prüfen. Sie können z.B. Name und Kennwort über eine eigene Benutzertabelle prüfen. Sind die Identifizierer gültig, übergeben Sie Wahr in $0, um die Verbindung zuzulassen.

Andernfalls übergeben Sie Falsch in $0; dann wird die Verbindung abgewiesen.

Standardmäßig gilt $0 = Falsch. Gibt es die Datenbankmethode On SQL Authentication und ist $0 nicht definiert, werden deshalb alle Verbindungen abgewiesen.

Hinweis: Gibt es keine Datenbankmethode On SQL Authentication, wird die Verbindung über das in 4D integrierte System zur Benutzerverwaltung bewertet (wenn es aktiviert ist, d.h. wenn dem Designer ein Kennwort zugewiesen ist) Ist das System nicht aktiviert, werden Benutzer mit Designer-Zugriffsrechten angemeldet, d.h. mit uneingeschränktem Zugriff.

Haben Sie in $0 Wahr übergeben, müssen Sie dann in der Datenbankmethode On SQL Authentication den Befehl CHANGE CURRENT USER erfolgreich aufrufen, damit die Anfrage angenommen wird und 4D eine SQL Sitzung für den Benutzer öffnet.

Über den Befehl CHANGE CURRENT USER können Sie ein virtuelles Authentifizierungssystem einrichten mit doppeltem Vorteil: Es ermöglicht einerseits die Steuerung der Verbindungsaktionen und blendet andererseits die Identifizierer der Verbindung aus, so dass sie von außerhalb der 4D SQL Sitzung nicht einsehbar sind.

Das folgende Beispiel der Datenbankmethode On SQL Authentication prüft, ob die Anfrage der Verbindung vom internen Netzwerk stammt, bestätigt die Identifizierer und weist dann dem Benutzer "sql_user" die Zugriffsrechte für die SQL Sitzung zu.

   C_TEXT($1;$2;$3) 
   C_BOOLEAN ($0) 
      `$1: Benutzer
      `$2: Kennwort
      `{$3: IP Adresse des Client} 
   ON ERR CALL ("SQL_Fehler") 
   If (checkInternalIP($3))
      `Die Methode checkInternalIP prüft, ob die IP Adresse intern ist
      If ($1="Viktor") & ($2="Hugo") 
         CHANGE CURRENT USER("sql_Benutzer";"") 
         If (OK=1) 
            $0:=True 
         Else 
            $0:=False 
         End if
      Else 
         $0:=False 
      End if
   Else 
      $0:=False 
   End if

Referenz

CHANGE CURRENT USER.


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next