4D v14.3Datenbankmethode On SQL Authentication |
|||||||||||||||||
|
4D v14.3
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 |
Sie müssen diese Parameter folgendermaßen deklarieren:
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 v12.4)
4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)