2014-07-11 5 views
1

У меня есть приложение, хранящее его данные в базе данных Oracle 11g Express Edition. Когда пользовательский пароль Oracle начинает истекать (ввод льготного периода), приложение выдает исключение (ORA-28002) и просто перестает работать. Мне нужно найти способ сохранить приложение в течение этого периода и сообщить администратору, чтобы пароль можно было изменить до истечения срока его действия.Установить срок действия пароля oracle пользователя Срок действия

Однако моя реальная проблема заключается в том, что мне нужно установить пользователя базы данных в этот льготный период, чтобы я мог программировать и тестировать свое приложение и посмотреть, работает ли мой код. Я попытался изменить дату истечения срока действия в dba_users, но у меня нет необходимых прав для этого. Я даже не уверен, что это правильный подход.

Что я могу сделать, чтобы сервер баз данных подумал, что моя учетная запись пользователя скоро закончится, поэтому я могу написать код для обработки этого события?

ответ

2

Посмотрите в USER_USERS

Это даст вам вошедший в собственном пользователе дату истечения срока действия, так что ваше приложение может предупредить пользователь перед счетом истекающего.

3

Для этого вам понадобятся привилегии на уровне базы данных. Обычный пользователь не может даже явно заблокировать или закрыть свою собственную учетную запись. (Вы можете заблокировать его, используя неправильный пароль, если ваш профиль настроен так)

Единственный другой способ, которым я знаю, чтобы закончить ваш пользователь (без команды уровня базы данных), - обмануть базу данных, настроив часы вперед.

Если у вас нет распорядителей DBA, маловероятно, что у вас есть привилегии для изменения системных часов.

Я попытался изменить дату истечения срока действия в dba_users, но я не имею необходимые привилегии для этого. Я даже не уверен, что это правильный подход .

Нет, не вносите изменений в DBA_USERS. Вам нужно будет изменить PASSWORD_GRACE_TIME для профиля DEFAULT, используя команду «ALTER PROFILE». Для всех связанных изменений для этого требуется система 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 дня.

Теперь я могу написать код, чтобы справиться с этой конкретной ситуацией и протестировать его. Спасибо всем за вашу помощь :)

Смежные вопросы