source

ORA-28001:암호가 만료되었습니다.

manycodes 2023. 3. 17. 21:44
반응형

ORA-28001:암호가 만료되었습니다.

Oracle 데이터베이스 문제에 직면해 있습니다.데이터베이스를 열면 ORA-28001:암호가 만료되었습니다."

계정을 업데이트했습니다.

sqlplus /nolog
SQL> connect / as SYSDBA
Connected.

SQL> SELECT username, account_status FROM dba_users WHERE ACCOUNT_STATUS LIKE '%EXPIRED%';

SQL> ALTER USER system IDENTIFIED BY system;         
User altered.

SQL> ALTER USER system ACCOUNT UNLOCK;
User altered.

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Profile altered.

SQL> exit

확인해보니 내 계정: '시스템'은 OPEN으로 되어 있지만 Oracle SQL Developer에서 열어도 다음과 같은 경고가 있습니다.

ORA-28001: The password has expired

많은 링크를 참조했지만 여전히 문제가 있습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
alter user EPUSR100 identified by EPUSR100 account unlock;
commit;

문제를 해결했습니다.확인만 하면 됩니다.

open_mode from v$database

다음 사항을 확인합니다.

check account_status to get mode information

다음으로 다음을 사용합니다.

alter user myuser identified by mynewpassword account unlock;

암호가 만료된 SQL Plus의 사용자와 연결을 시도합니다.새로운 패스워드를 입력하도록 요구됩니다.새 암호를 입력하고 암호를 확인합니다.

그건 작동할 것이다.

SQL Plus 출력 이미지

'PASSWORD_LIFE_TIME' 체크 방법:

SQL >select * from dba_profiles;

만료되지 않음으로 설정

SQL >ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

그런 다음 잠긴 사용자의 암호를 재설정합니다.

C:\>sqlplus /nolog
SQL> connect / as SYSDBA
SQL> select * from dba_profiles;
SQL> alter profile default limit password_life_time unlimited;
SQL> alter user database_name identified by new_password;
SQL> commit;
SQL> exit;
  • Oracle에 접속

sqlplus sys/root를 sysdba로 지정 oracle에 접속되어 있다

  • 사용자의 상태 및 만료 날짜 확인

dba_users에서 사용자 이름, account_status, expiry_date를 선택합니다.

상황

  • 만료 문제를 해결하기 위해 사용자의 암호 변경

ALTER User dummy_password로 식별되는 사용자 dummy_user;

패스워드를 변경하다

  • 사용자 계정이 잠긴 경우 잠금 해제

ALTER User dummy_사용자 계정 잠금 해제

  • 향후 문제가 발생하지 않도록 암호 만료 제한을 무제한으로 설정합니다.

ALTER Profile Default Limit PASSWORD_LIFE_TIME UNLIMITED;

패스워드 제한 해제

  • 사용자의 상태를 다시 확인하여 유효기간을 확인합니다.계정 상태는 현재 열려 있으며 만료 날짜는 무제한입니다.

dba_users에서 사용자 이름, account_status, expiry_date를 선택합니다.

상태 1

SQL 명령어:

sqlplus sys/root를 sysdba로 지정

dba_users에서 사용자 이름, account_status, expiry_date를 선택합니다.

ALTER User dummy_password로 식별되는 사용자 dummy_user;

ALTER User dummy_사용자 계정 잠금 해제

ALTER Profile Default Limit PASSWORD_LIFE_TIME UNLIMITED;

비밀번호를 변경해도 SQLDEVELAPOER에 반영되지 않아 문제가 발생하였습니다.

다음 Atlast로 문제를 해결했습니다.

  1. 오픈 명령어 프로포지트
  2. sqlplus 입력
  3. sysdba로 로그인
  4. NEW_PASSWORD로 식별된 사용자 이름 변경 명령을 실행합니다.

같은 문제가 있었습니다.데이터베이스 로그인을 시도하고 있습니다.ORA-28001:패스워드가 유효기간이 지났습니다」, 문제의 간단한 순서를 수정했습니다.

1. open 명령 프롬프트 2.type sqlplus 3.Enter Password(비밀번호 입력)라고 하면 이전 비밀번호를 입력하면 비밀번호가 만료되었습니다.ORA-28001 4라고 표시됩니다.새로운 패스워드를 묻고 패스워드 5를 재입력합니다.새로운 패스워드 6으로 변경됩니다.SQL 데이터베이스로 이동하여 새 비밀번호로 연결을 시도하면 연결됩니다.

Oracle 18c를 Docker 컨테이너에서 실행하고 있는데, 문제가 있는 데이터베이스가 Pluggable 데이터베이스이기 때문에 다른 접근방식을 취해야 했습니다.

  1. SYSDBA 로그인

  2. Pluggagle 데이터베이스로 전환

    ALTER SESSION SET CONTAINER=XEPDB2;
    
  3. 비밀번호 만료 제거

    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
    
  4. 현재 사용자 세부 정보 가져오기

    SELECT dbms_metadata.get_ddl('USER','username') stmt from dual;
    

    「 「 」를 교환해 .username★★★★★★★★★★★★★★★★★★★★★★★★★★★

    출력은 다음과 같습니다.

    CREATE USER "…" IDENTIFIED BY VALUES '…'
    
  5. 암호를 재설정하려면 다음과 같이 실행합니다.

    ALTER USER "…" IDENTIFIED BY VALUES '…' ACCOUNT UNLOCK;
    

    …이전 단계의 사용자 이름과 비밀번호를 사용합니다.

여기와 다른 답변의 조합입니다.

기한이 만료된 사용자를 확인하려면 SELECT * FROM <DATABASE USER/PROFILES> 명령을 실행합니다.

사용자 잠금을 해제하려면 계정 잠금 해제로 식별된 사용자 변경 명령을 실행합니다.

가 더 했을 경우는, 「 」ORA-65066: The specified changes must apply to all containersCDB를 사용하다

alter session set container=CDB$ROOT;

다음으로 alter 명령어가 동작합니다.

alter user USER identified by NEW_PASSWORD account unlock;

심플...Goto 명령 프롬프트를 표시하고 SQLPLUS /@connect 문자열 Enter 키를 누릅니다.

패스워드가 만료되어 새로운 패스워드를 입력할 수 있는 옵션이 표시됩니다.새 비밀번호를 입력하면 완료됩니다.

데이터베이스가 있는 머신으로 이동하여 검색창 -> 검색SqlPlus 사용자 이름을 입력하고 비밀번호를 입력하면 새 비밀번호를 입력하라는 메시지가 나타납니다.새로운 패스워드를 입력하면 패스워드가 정상적으로 변경되었다고 표시됩니다.

CDB/PDB가 잘못되었으므로 올바른 PDB에 연결합니다.

언급URL : https://stackoverflow.com/questions/40581131/ora-28001-the-password-has-expired

반응형