1

account_statusが期限切れになると、通常は次のログインのパスワードを変更するように求められますが、PL/SQLおよびsqlplusツールを使用して接続中に、パスワードの有効期限が切れたときにパスワードを変更するようにプロンプ​​トを表示しない

ORA-00604:再帰SQLレベル1でエラーが発生しました。 ORA-06502:PL/SQL:数値または値のエラー:文字列バッファが小さすぎます。 ORA-06512:8行目 ORA-28001:パスワードの有効期限が切れています

サーバーから接続しようとしました。パスワードの変更を促すプロンプトが表示されます。何がエラーである可能性があります。 FYI-Account_statusはロックされていません。

account_statusが期限切れの状態のときに、Pl/SQL開発者またはToadまたはsqlplusツールでパスワードを変更するように促す方法はありますか?

+0

ログオントリガーが呼び出されていますか?それはそのpl/sqlのエラーを示すので?また、同様の問題を引き起こす可能性があるエラーを記録するトリガーがあります... – cableload

答えて

0

パスワード確認機能にエラーがある可能性があります。私は数週間前にまったく同じミスを犯し、人々を事実上自分の口座から守りませんでした。

このクエリを使用して、パスワード認証機能検索:

select * from dba_source where name = '<name from above query>'; 

ほとんどのパスワード検証機能は、文字のセットを保持する上部の配列を持っている:このクエリでこのソースで

select * from dba_profiles where resource_name = 'PASSWORD_VERIFY_FUNCTION'; 

ルック。ほとんどの人が唯一の最も一般的な特殊文字の数を選択するいくつかの理由

special_character_array varchar2(10) := '[email protected]#$%^&*()'; 

: 8行目でこのような変数宣言は、おそらくあります。それで、あまり一般的でないキャラクターを使うとき、人々はパスワードを変更することができません。

この問題を解決するには、DBAがリストに文字を追加することがあります。ここでは典型的なアメリカ英語キーボード上のすべての特殊文字のより完全なリストです:

special_character_array varchar2(10) := '`[email protected]#$%^&*()-_=+[{]}\|;:''",<.>/?'; 

ミスが多くの文字を追加することなく、varchar2(31)varchar2(10)のサイズを大きくしました。 ORA-06502:PL/SQL:数値エラーまたは値エラー:文字列バッファが小さすぎます。

これが問題の場合は、パスワード検証機能を再コンパイルするためにSYSDBAとしてログインする必要があります。

0

ありがとうございました。

このエラーは、私たちによって作成されたログトリガーによって発生していることが判明しました。あなたが述べたように、特定の変数のためのvarchar2(100)のサイズを増やすと、この問題が解決されました。これで、ユーザーのアカウントのステータスが期限切れになったときにパスワードを変更するよう求められます。

関連する問題