パスワードが6日以内に期限切れになるというORA-28002メッセージを取り除く方法は?


18

パスワードが6日以内に期限切れになることを示すORA-28002を取得するユーザーがいます。私は次を実行しました:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

しかし、ユーザーとしてログインしようとしても、メッセージは残っています。これを実行する:

select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME';

値が実際にUNLIMITEDに変更されたことを示しています。

回答:


17

パスワードはdba_usersで「EXPIRED」としてマークされているか、「EXPIRY_DATE」でマークされています。変更する必要があります。同じパスワードに戻すことができます。簡単な方法は、「値で」パスワードを設定することです。これは通常、履歴チェックをバイパスします。

12:28:33 SQL> select * from dba_users where username = 'MYUSER1';

USERNAME                          USER_ID PASSWORD
------------------------------ ---------- ------------------------------
ACCOUNT_STATUS                   LOCK_DATE          EXPIRY_DATE
-------------------------------- ------------------ ------------------
DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE           CREATED
------------------------------ ------------------------------ ------------------
PROFILE                        INITIAL_RSRC_CONSUMER_GROUP
------------------------------ ------------------------------
EXTERNAL_NAME
--------------------------------------------------------------------------------
MYUSER1                               338 66856982BE5CD23F
OPEN
USERS                          TEMP                           17-JAN-11
DEFAULT                        DEFAULT_CONSUMER_GROUP



Elapsed: 00:00:00.03
12:28:43 SQL> alter user myuser1 password expire;

User altered.

Elapsed: 00:00:00.00
12:29:11 SQL> select * from dba_users where username = 'MYUSER1';

USERNAME                          USER_ID PASSWORD
------------------------------ ---------- ------------------------------
ACCOUNT_STATUS                   LOCK_DATE          EXPIRY_DATE
-------------------------------- ------------------ ------------------
DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE           CREATED
------------------------------ ------------------------------ ------------------
PROFILE                        INITIAL_RSRC_CONSUMER_GROUP
------------------------------ ------------------------------
EXTERNAL_NAME
--------------------------------------------------------------------------------
MYUSER1                               338 66856982BE5CD23F
EXPIRED                                             17-JAN-11
USERS                          TEMP                           17-JAN-11
DEFAULT                        DEFAULT_CONSUMER_GROUP



Elapsed: 00:00:00.03
12:29:14 SQL>

この形式は、「値 'hash from dba_users.password'で識別される変更ユーザーUSER」です。

[TEST] C:\>sqlplus system

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jan 17 12:18:16 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

new: showmode BOTH
12:18:17 SQL> prompt end of LOGIN.SQL
end of LOGIN.SQL
12:18:17 SQL> create user myuser1 identified by mypassword1;

User created.

Elapsed: 00:00:00.01
12:18:21 SQL> grant connect, resource to myuser1;

Grant succeeded.

Elapsed: 00:00:00.01
12:18:30 SQL> connect myuser1/mypassword1
Connected.
12:18:39 SQL> connect system
Enter password:
Connected.
12:18:51 SQL> alter user myuser1 password expire;

User altered.

Elapsed: 00:00:00.00
12:19:05 SQL> connect myuser1/mypassword1
ERROR:
ORA-28001: the password has expired


Changing password for myuser1
New password:
Retype new password:
Password changed
Connected.
12:19:16 SQL> connect myuser1/mypassword1
ERROR:
ORA-01017: invalid username/password; logon denied


Warning: You are no longer connected to ORACLE.
12:19:21 SQL> connect system
Enter password:
Connected.
12:19:34 SQL> alter user myuser1 identified by mypassword1;

User altered.

Elapsed: 00:00:00.01
12:19:49 SQL> alter user myuser1 identified by mypassword1 password expire;

User altered.

Elapsed: 00:00:00.01
12:20:26 SQL> select username, password from dba_users where username = 'MYUSER1';

USERNAME                       PASSWORD
------------------------------ ------------------------------
MYUSER1                        66856982BE5CD23F

Elapsed: 00:00:00.01
12:20:36 SQL> alter user myuser1 identified by values '66856982BE5CD23F' ;

User altered.

Elapsed: 00:00:00.01
12:21:01 SQL> connect myuser1/mypassword1
Connected.
12:21:13 SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

15

以下の4つのクエリを見つけて、システムデータベースからこれらのクエリを実行してください。

//For seeing Full user details
SELECT profile FROM dba_users WHERE username = 'SYSTEM';

//This query is used to change the password life time to unlimited
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

//This query is used to chagne the default password.
alter user SYSTEM identified by "system";

1
とても簡単で、説明も十分です。
S.マイヨール

5

Toadを使用している同僚は、[ユーザー]の下の[スキーマブラウザー]に表示されているアカウントが表示されていることを確認しました。

ユーザーのロック解除を右クリックして成功しました。[ユーザーの変更]ダイアログで、古いパスワードを再入力し、[パスワードはロックされています]チェックボックスをオフにしました。


3

新しい制限を有効にするには、パスワードを再度変更する必要があります。


同じパスワードを保持したい
-bernd_k

1
パスワードの再利用を禁止するプロファイルがない場合、REWからの回答はこの追加要件を満たしています。11g以降を使用している場合、パスワードハッシュはdba_usersにないため、sys.user $から取得する必要があります。laurentschneider.com/wordpress/2007/08/…を
リーリッフェル

1

ユーザーアカウントを変更する必要があります。最初にsysアカウントに接続し、そこから以下の手順を実行できます。

alter user practice identified by password;

これで問題が解決します...


1

これは古いことは知っていますが、Oracle SQL Developerを使用している場合は、次の手順に従ってください。

  • 別のユーザーを使用して、任意のデータベース接続にログインします。デフォルトの「システム」または「sys」ユーザー名と、そこに取得したパスワードを使用できます。

  • 接続ツリーを開き、「その他のユーザー」ノードを見つけて、次のように開きます。

ここに画像の説明を入力してください

  • 「その他のユーザー」の下の子ノートでユーザー名を見つけ、右クリックして次のようにユーザーを編集します。

ここに画像の説明を入力してください

  • 新しいパスワードを入力し、有効期限が切れたパスワードのチェックを外してから適用します。もう一度右クリックして、必要に応じて設定が変更されたかどうかを確認します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.