ユーザが接続したときにアプリケーションが表示する必要のあるメッセージが結果セットに含まれるプロシージャを指定します。
文字列
post_login_procedure システム・プロシージャ
DBA 権限が必要です。
post_login_procedure を空の文字列以外に設定すると、アプリケーションは、このオプションに指定されたプロシージャを接続プロセス中に呼び出し、ユーザに対して表示するメッセージを特定できます。このオプションには、owner.function-name という形式の値を指定する必要があります。これによって、ユーザが関数を無効にすることを防止できます。
このオプションを設定すると、Sybase Central 用の SQL Anywhere プラグインである Interactive SQL と dbisqlc がプロシージャを呼び出し、プロシージャが返すメッセージをウィンドウに表示します。SQL Anywhere に付属していないアプリケーションについては、必要に応じて、このオプションに指定されたプロシージャを呼び出してメッセージを表示するように変更を加えてください。
接続時にアプリケーションがメッセージを表示することが必要となる状況としては、パスワード有効期限システムを実装している場合に、パスワードの期限切れが近づいていることをユーザに通知することがあります。このような機能を利用すると、ユーザが接続するたびに、パスワードが期限切れとなることを数日前に知らせることができます。
このオプションに指定するプロシージャは、1 つ以上のローと 2 つのカラムで構成される結果セットを返す必要があります。1 つ目のカラムは VARCHAR(255) 型で、メッセージのテキスト (メッセージがない場合は NULL) を返します。2 つ目のカラムは INT 型で、アクションのタイプを返します。アクションとして指定可能な値は次のとおりです。
0 メッセージを表示 (メッセージがある場合)
1 メッセージを表示し、ユーザにパスワードの変更を要求
2-99 予約
100 以上 ユーザ定義
SQL Anywhere プラグインの dbisql と dbisqlc は、アクションの値にかかわらず、NULL 以外であれば、すべてのメッセージを表示します。アクションを 1 に設定すると、SQL Anywhere プラグイン と dbisql (dbisqlc ではない) はユーザにパスワードを変更するよう要求し、新しいパスワードをユーザ指定の値に設定します。
post_login_procedure の使用と、パスワード有効期限の運用などの詳細なパスワード規則の実装を示す例については、「パスワード検証関数の使用」を参照してください。
次の例では、p_post_login_check というプロシージャを使用して、ユーザにパスワードの期限切れが近づいていることを知らせ、パスワードを変更するよう要求します。
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'; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |