4D v16.3

Datenbankmethode On SQL Authentication

Home

 
4D v16.3
Datenbankmethode On SQL Authentication

Datenbankmethode On SQL Authentication 


 

$1, $2, $3 -> Datenbankmethode On SQL Authentication -> Funktionsergebnis 
Parameter Typ   Beschreibung
$1  Text in Benutzername
$2  Text in Kennwort
$3  Text in (optional) IP Adresse des Client am Ursprung der Anfrage
Funktionsergebnis  Boolean in Wahr = Anfrage angenommen, Falsch = Anfrage verweigert

  

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 (*)
$0BooleanWahr = Anfrage angenommen, Falsch = Anfrage verweigert

(*) 4D gibt IPv4 Adressen in einem hybrid IPv6/IPv4 Format mit einem 96-bit Prefix zurück, z.B. ::ffff:192.168.2.34 für die IPv4 Adresse 192.168.2.34. Weitere Informationen dazu finden Sie im Abschnitt Unterstützung von IPv6.

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.

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

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankmethoden

 
GESCHICHTE 

Erstellt: 4D v11 SQL Release 2

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)