Gibt eine Prozedur an, deren Ergebnismenge Meldungen enthält, die von Anwendungen angezeigt werden sollen, wenn ein Benutzer eine Verbindung herstellt.
Zeichenfolge
post_login_procedure-Systemprozedur
DBA-Berechtigung ist erforderlich.
Wenn die Option post_login_procedure auf etwas Anderes als eine leere Zeichenfolge gesetzt ist, können Anwendungen die Prozedur aufrufen, die von der Option als Teil des Verbindungsprozesses angegeben ist, um zu bestimmen, welche Meldungen ggf. dem Benutzer angezeigt werden. Die Option sollte im Format Eigentümer.Funktionsname sein, um zu verhindern, dass Benutzer die Funktion außer Kraft setzen.
Das SQL Anywhere-Plug-In für Sybase Central, Interactive SQL und "dbisqlc" rufen die Prozedur auf, wenn diese Option gesetzt ist, und zeigen von der Prozedur zurückgegebene Meldungen in einem Fenster an. Andere Anwendungen, die nicht in SQL Anywhere enthalten sind, sollten angepasst werden, um die von dieser Option verfügbar gemachte Prozedur aufzurufen und Meldungen anzuzeigen, falls Sie diese Funktionalität benötigen.
Ein Fall, bei dem eine Anwendung möglicherweise eine Meldung bei Verbindungsherstellung anzeigen muss, wäre die Benachrichtigung an Benutzer, deren Kennwort abzulaufen droht, falls ein Kennwortablaufdatum implemetiert ist. Diese Funktionalität kann verwendet werden, um den Benutzer bei jeder Verbindungsherstellung zu benachrichtigen, falls das Kennwort in den nächsten Tagen ablaufen wird, und dies, bevor es tatsächlich abläuft.
Die von dieser Option angegebene Prozedur muss eine Ergebnismenge mit einer oder mehreren Zeilen und zwei Spalten zurückgeben. Die erste Spalte vom Typ VARCHAR(255) gibt den Text der Meldung oder NULL zurück, wenn es keine Meldung gibt. Die zweite Spalte vom Typ INT gibt den Aktionstyp zurück. Folgende Werte für Aktionen sind zulässig:
0 Die Meldung anzeigen (falls vorhanden)
1 Die Meldung anzeigen und den Benutzer zu einer Kennwortänderung auffordern
2-99 Reserviert
100 und höher Benutzerdefiniert
Das SQL Anywhere-Plug-In, dbisql, und dbisqlc zeigen alle Nicht-NULL-Meldungen an, unabhängig vom Aktionswert. Wenn die Aktion auf 1 gesetzt ist, fordern das SQL Anywhere-Plug-In und dbisql (aber nicht dbisqlc) den Benutzer auf, das Kennwort zu ändern, und setzen dann das neue Kennwort auf den benutzerdefinierten Wert.
Ein Beispiel, das post_login_procedure verwendet und erweiterte Kennwortregeln enthält sowie ein Kennwortablaufdatum implementiert, finden Sie unter "Eine Kennwort-Überprüfungsfunktion verwenden".
Das folgende Beispiel verwendet eine Prozedur mit Namen p_post_login_check, die Benutzer warnt, dass ihr Kennwort abzulaufen droht, und sie auffordert, das Kennwort zu ändern.
CREATE PROCEDURE DBA.p_post_login_check( ) RESULT( message_text VARCHAR(255), message_action INT ) BEGIN DECLARE message_text CHAR(255); DECLARE message_action INT; -- assume the password_about_to_expire variable was -- set by the login procedure IF password_about_to_expire = 1 THEN SET message_text = 'Your password is about to expire'; SET message_action = 1; ELSE SET message_text = NULL; SET message_action = 0; END IF; -- return message (if any) through this result set SELECT message_text, message_action; END; GRANT EXECUTE ON DBA.p_post_login_check TO PUBLIC; SET OPTION PUBLIC.post_login_procedure = 'DBA.p_post_login_check'; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |