Datenbankmethode On SQL Authentication

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

Version 11.2


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 bestätigt, lässt sich über den Befehl CHANGE CURRENT USER der Zugriff auf Anfragen innerhalb der 4D Datenbank 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 angenommen, wenn die Datenbankmethode in $0 Wahr zurückgibt, sonst wird sie verweigert.

Hinweis: Die Anweisung ODBC 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 und so die Anfrage zuzulassen. 4D öffnet dann für den Benutzer eine SQL Sitzung.

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 Verbindun-gen abgewiesen.

Hinweis: Gibt es keine Datenbankmethode On SQL Authentication, wird die Ver-bindung über das in 4D integrierte System zur Benutzerverwaltung bewertet (wenn es aktiviert ist, d.h. wenn dem Designer ein Kennwort zugewiesen ist).

Wurde die Verbindung angenommen, können Sie in der Datenbank-methode On SQL Authentication den Befehl CHANGE CURRENT USER aufrufen. Wir empfehlen, diesen Befehl zu verwenden, da er eine höhere Sicherheitsebene gewährleistet. Diese virtuelle Authentifizie-rung hat doppelten Vorteil: Sie ermöglicht die Steuerung der Verbin-dungsaktionen und blendet außerdem die Identifizierer der Verbindung aus, so dass sie von außerhalb der 4D SQL Sitzung nicht einsehbar sind.

Ist das Kennwortsystem in 4D nicht aktiviert, hat die Ausführung von CHANGE CURRENT USER keine Auswirkung; die Benutzer melden sich mit den Zugriffsrechten des Designers an.

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   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next