Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||
|
4D v20 R7
Datenbankmethode On SQL Authentication
|
Parameter | Typ | Beschreibung |
$1 | Text | Benutzername |
$2 | Text | Kennwort |
$3 | Text | (optional) IP Adresse des Client am Ursprung der Anfrage (*) |
$0 | Boolean | Wahr = 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
Produkt: 4D
Thema: SQL
4D Programmiersprache ( 4D v20 R7)