Empfängt Werte von der entfernten Datenbank, die für eine Authentifizierung über Benutzer-ID bzw. Kennwort hinaus verwendet werden können. Mit den Werten können Sie ebenfalls jede Synchronisation beliebig anpassen.
In der folgenden Tabelle stellt die Beschreibung den SQL-Datentyp bereit. Wenn Sie Ihr Skript in Java oder .NET schreiben, müssen Sie den entsprechenden Datentyp benutzen. Siehe SQL-Java-Datentypen und SQL-.NET-Datentypen.
In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Die Verwendung von Fragezeichen ist veraltet und es wird empfohlen, benannte Parameter zu verwenden. Sie können nicht Namen und Fragezeichen in einem Skript mischen. Wenn Sie Fragezeichen verwenden, müssen die Parameter in der nachfolgend gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden (z.B. müssen Sie Parameter 1 verwenden, wenn Sie Parameter 2 verwenden möchten). Wenn Sie benannte Parameter verwenden, können Sie beliebige Teilmengen der Parameter in beliebiger Reihenfolge angeben.
Parametername für SQL-Skripten | Beschreibung | Reihenfolge (veraltet für SQL) |
---|---|---|
s.authentication_status | INTEGER. Dies ist ein INOUT-Parameter. | 1 |
s.remote_id | VARCHAR(128). Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden. | Nicht anwendbar |
s.username | VARCHAR(128). Der MobiLink-Benutzername | 2 |
a.N (mindestens einer) | VARCHAR(128). Benannte Parameter können z.B. a.1 a.2 sein.
|
3... |
authentication_status Der Parameter authentication_status ist erforderlich. Zeigt den gesamten Erfolg der Authentifizierung an und kann einen der folgenden Werte annehmen:
Zurückgegebener Wert | authentication_status | Beschreibung |
---|---|---|
V <= 1999 | 1000 | Authentifizierung erfolgreich |
1000 <= V <= 2999 | 2000 | Authentifizierung erfolgreich, aber das Kennwort läuft in Kürze ab. |
2000 <= V <= 3999 | 3000 | Authentifizierung fehlgeschlagen, da das Kennwort abgelaufen ist. |
4000 <= V <= 4999 | 4000 | Authentifizierung fehlgeschlagen. |
5000 <= V <= 5999 | 5000 | Authentifizierung nicht möglich, da die entfernte ID bereits verwendet wird. Versuchen Sie die Synchronisation später nochmals. |
6000 <= V | 4000 | Wenn der zurückgegebene Wert größer als 5999 ist, interpretiert ihn MobiLink als einen Rückgabewert von 4000 (Authentifizierung fehlgeschlagen). |
username Dieser Parameter ist der MobiLink-Benutzername. VARCHAR(128).
remote_ID Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden.
Siehe Entfernte IDs und MobiLink-Benutzernamen in Skripten verwenden.
remote a.N Der n-te Authentifizierungsparameter, der vom entfernten Client gesendet wurde.
Die Anzahl der entfernten Parameter muss der vom authenticate_parameters-Skript erwarteten Anzahl entsprechen, da sonst ein Fehler gemeldet wird. Ein Fehler tritt auch auf, wenn vom Client Parameter gesendet werden und kein Skript für dieses Ereignis vorliegt.
Sie können Zeichenfolgen (oder Parameter in der Form von Zeichenfolgen) sowohl von SQL Anywhere- als auch von UltraLite-Clients senden. Dadurch kann die Authentifizierung über eine Benutzer-ID und ein Kennwort hinausgehen. Außerdem bedeutet dies, dass Sie während der Authentifizierung Ihre Synchronisation basierend auf dem Wert von Parametern anpassen und dies vor der Synchronisation tun können. Diese Parameter können auch von Synchronisationsskripten referenziert werden.
Der MobiLink-Server führt dieses Ereignis beim Start jeder einzelnen Synchronisation aus. Es wird in derselben Transaktion ausgeführt wie das authenticate_user-Ereignis.
Sie können dieses Ereignis verwenden, um das integrierte MobiLink-Authentifizierungsverfahren durch ein angepasstes Verfahren zu ersetzen. Als Grund dafür ist denkbar, dass Sie möglicherweise das Authentifizierungsverfahren Ihres DBMS verwenden oder Funktionen implementieren wollen, die im integrierten MobiLink-Verfahren nicht vorhanden sind.
Wenn die Skripten authenticate_user oder authenticate_user_hashed aufgerufen werden und einen Fehler zurückgeben, wird dieses Ereignis nicht aufgerufen.
SQL-Skripten für das Ereignis authenticate_parameters müssen als gespeicherte Prozedur implementiert werden.
Bei entfernten UltraLite-Datenbanken können Sie die Parameter mit den Feldern num_auth_parms und auth_parms in der ul_sync_info-Struktur übergeben. num_auth_parms ist die Anzahl der Parameter, von 0 bis 255. auth_parms ist ein Zeiger auf ein Array von Zeichenfolgen. Damit die Zeichenfolgen nicht als normaler Text angezeigt werden können, werden sie sie auf dieselbe Weise verschleiert wie Kennwörter. Wenn num_auth_parms gleich 0 ist, setzen Sie auth_parms auf NULL. Nachstehend finden Sie ein Beispiel für die Übergabe von Parametern in UltraLite:
ul_char * Params[ 3 ] = { UL_TEXT( "param1" ), UL_TEXT( "param2" ), UL_TEXT( "param3" ) }; ... info.num_auth_parms = 3; info.auth_parms = Params; |
Bei entfernten SQL Anywhere-Datenbanken können Sie Parameter mit der dbmlsync-Option -ap in eine kommagetrennten Liste übergeben. Die folgende Befehlszeile übergibt z.B drei Parameter:
dbmlsync -ap "param1,param2,param3" |
In diesem Beispiel könnte das authenticate_parameters-Skript wie folgt aussehen:
CALL my_auth_parm ( {ml s.authentication_status}, {ml s.remote_id}, {ml s.username}, {ml a.1}, {ml a.2}, {ml a.3} ) |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |