Как государства и другие ответы, изменения профиля пользователя (например, «Настройка по умолчанию» профиль) соответственно приведет к паролям, что когда-то установить, никогда не закончится.
Однако, как отмечает один из комментаторов, пароли, установленные под старыми значениями профиля, могут быть истекли и (если после указанного льготного периода профиля) заблокирована учетная запись.
Раствора для истекших паролей с блокированными счетами (как это предусмотрено в автоответчике комментарии) является использование одной версии команды ALTER USER:
ALTER USER xyz_user ACCOUNT UNLOCK;
Однако команда разблокировки работает только для учетных записей, где учетная запись является фактически заблокирован, но не для тех учетных записей, которые находятся в льготном периоде, когда пароль истек, но учетная запись еще не заблокирована. Для этих счетов необходимо сменить пароль с другой версией команды ALTER USER:
ALTER USER xyz_user IDENTIFIED BY new_password;
Ниже приводится несколько SQL * Plus скрипт, привилегированный пользователь (например, пользователь «SYS») можно использовать для сброса пароля пользователя к существующему хешированному значению, хранящемуся в базе данных.
REM Tell SQL*Plus to show before and after versions of variable substitutions
SET VERIFY ON
SHOW VERIFY
REM Tell SQL*Plus to use the ampersand '&' to indicate variable substitution expansion
SET DEFINE '&'
SHOW DEFINE
REM Specify in a SQL*Plus variable the account to 'reset'
DEFINE USER_NAME = 'xyz_user'
REM Show the status of the account before reset
SELECT
ACCOUNT_STATUS,
TO_CHAR(LOCK_DATE, 'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE
FROM
DBA_USERS
WHERE
USERNAME = '&USER_NAME';
REM Create a SQL*Plus variable to hold the hash of existing password
DEFINE OLD_PASSWORD = ""
REM Tell SQL*Plus where to store the value to be selected with SQL
COLUMN PWORDHASH NEW_VALUE OLD_PASSWORD
REM Select the old hash password as a delimited string
SELECT
'''' || PASSWORD || '''' AS PWORDHASH
FROM
SYS.USER$
WHERE
NAME = '&USER_NAME';
REM Show the contents of the SQL*Plus variable
DEFINE OLD_PASSWORD
REM Reset the password
ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_PASSWORD;
REM Show the status of the account after reset
SELECT
ACCOUNT_STATUS,
TO_CHAR(LOCK_DATE, 'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE
FROM
DBA_USERS
WHERE
USERNAME = '&USER_NAME';
Я думаю, что вы могли бы быть лучше спрашивать это на serverfault.com. Я не собираюсь это заставлять, потому что вы сказали, что используете его для развития, и я думаю, что есть еще шанс, который кто-то из вас узнает, и/или другие могут извлечь выгоду из этой информации. –
Думаю, я сделаю именно это. Я обсуждал, на каком сайте он более подходит, поскольку это основной вопрос с базой данных и не столько вещь DBA. –
Не знаете, в чем заключается политика обмана для кросс-сайтов, но вот ссылка: http://serverfault.com/questions/37622/how-do-i-turn-off-oracle-password-expiration –