2014-07-11 2 views
1

Oracle 11g Express Edition 데이터베이스에 데이터를 저장하는 애플리케이션이 있습니다. 오라클 사용자 비밀번호가 만료되기 시작하면 (유예 기간 시작) 애플리케이션은 예외 (ORA-28002)를 던지고 작동을 멈 춥니 다. 그 기간 동안 응용 프로그램을 계속 실행하고 관리자에게 알려주는 방법을 찾아야 만 암호가 만료되기 전에 암호를 변경할 수 있습니다.오라클 사용자 비밀번호 만료/유예 기간 설정

그러나 실제 문제는 해당 유예 기간에 데이터베이스 사용자를 설정해야 응용 프로그램을 프로그래밍하고 테스트 할 수 있고 코드가 작동하는지 확인할 수 있습니다. dba_users에서 만료 날짜를 변경하려고했지만 필요한 권한이 없습니다. 이것이 올바른 접근법인지 확신 할 수 없습니다.

데이터베이스 서버에서 내 사용자 계정이 곧 만료 될 것이라고 생각하여 해당 이벤트를 처리 할 코드를 작성할 수 있도록하려면 어떻게해야합니까?

USER_USERS

에서

답변

2

봐 그것은 당신에게 줄 것이다 응용 프로그램 앞서 만료 계정의 사용자에게 경고 할 수 있도록 사용자 자신의 유효 기간에 기록.

3

데이터베이스 수준에서 권한을 부여해야합니다. 일반 사용자는 자신의 계정을 명시 적으로 잠 그거나 만료시킬 수 없습니다. (당신이 의도적으로 잘못된 암호를 사용하여 프로필을 설정하면 잠글 수 있습니다.)

데이터베이스 레벨 명령없이 사용자를 만료시키는 유일한 방법은 시계를 앞으로 설정하여 데이터베이스를 속이는 것입니다.

DBA 권한이없는 경우 시스템 시계 변경 권한이없는 것은 아닙니다.

dba_users에서 만료일을 변경하려고 시도했지만이를 수행하는 데 필요한 권한이 없습니다. 나는 이것이 올바른 접근법인지 확신 할 수 없다.

아니오, DBA_USERS를 변경하지 마십시오. "ALTER PROFILE"명령을 사용하여 DEFAULT 프로파일에 대해 PASSWORD_GRACE_TIME을 변경해야합니다. 관련된 모든 변경 사항에는 ALTER PROFILE 시스템 권한이 필요합니다. 따라서 DBA 권한이 없으면이를 수행 할 수 없습니다.

0

해결 : 어떻게 든 내 데이터베이스 관리자가 사용자 프로필을 DEFAULT에서 EXPIREPROFILE (으)로 변경했습니다. 그런 다음 프로파일의 암호 수명 및 유예 기간을 수정했습니다.

ALTER PROFILE EXPIREPROFILE LIMIT PASSWORD_LIFE_TIME 1; 
ALTER PROFILE EXPIREPROFILE LIMIT PASSWORD_GRACE_TIME 21; 

계정을 만료하고 암호를 변경했습니다. dba_users를 살펴보면 암호 만료 날짜가 내일입니다. 그러나 계정이 즉시 만료되지 않은 후 21 일의 유예 기간이 시작되었습니다.

이제이 특정 상황을 처리하고 테스트 할 수있는 코드를 작성할 수 있습니다. 도움을 주신 모든 분들께 감사드립니다.