Expired grace oracle что это

Обновлено: 30.06.2024

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

Как отключить срок действия пароля для этого пользователя (и всех других пользователей) на постоянной основе?

Я использую Oracle 11g, у которого есть пароли по умолчанию.

ОТВЕТЫ

Ответ 1

Чтобы изменить политику истечения срока действия пароля для определенного профиля пользователя в Oracle, сначала проверьте, какой профиль используется пользователем:

Затем вы можете изменить предел, чтобы никогда не истекать, используя:

Если вы хотите предварительно проверить лимит, вы можете использовать:

Ответ 2

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

Затем reset пароль и разблокируйте учетную запись пользователя. Он никогда не должен истекать снова:

Ответ 3

Как утверждают другие ответы, изменение профиля пользователя (например, профиль "DEFAULT" ) приведет к тому, что пароли, которые после этого будут установлены, никогда не истекут.

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

Решение для истекших паролей с заблокированными учетными записями (как указано в ответе на комментарий) заключается в использовании одной версии команды ALTER USER:

Однако команда unlock работает только для учетных записей, в которых фактически заблокирована учетная запись, но не для тех учетных записей, которые находятся в льготном периоде, когда пароль истек, но учетная запись еще не заблокирована. Для этих учетных записей пароль должен быть reset с другой версией команды ALTER USER:

Ниже немного SQL * Plus script, что привилегированный пользователь (например, пользовательский "SYS" ) может использовать для reset пароль пользователя для текущего существующего хешированного значения, хранящегося в базе данных.

Ответ 4

Я считаю, что поведение по истечении срока действия пароля по умолчанию никогда не истекает. Однако вы можете настроить профиль для своего пользовательского набора dev и установить PASSWORD_LIFE_TIME . Подробнее см. orafaq. Вы можете увидеть здесь для примера перспективы и использования одного человека.

Ответ 5

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

Однако, если вы этого хотите.

Если у вас есть правильное использование доступа после SQL

SELECT имя пользователя, account_status FROM dba_users;

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

Как навсегда отключить срок действия пароля для этого пользователя (и всех остальных пользователей)?

Я использую Oracle 11g, у которого пароли истекают по умолчанию.

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

Чтобы изменить политику истечения срока действия пароля для определенного профиля пользователя в Oracle, сначала проверьте, какой профиль использует пользователь:

Затем вы можете изменить лимит, чтобы он никогда не истек, используя:

Если вы хотите предварительно проверить лимит, вы можете использовать:

Это изменило профиль. Тем не менее, у меня есть пользователи, чьи пароли имеют срок действия, потому что профиль по умолчанию имел его при создании. Как изменить эти учетные записи, чтобы срок действия пароля не истек? select username,expiry_date,account_status from dba_users; для просмотра account_status. для тех, у кого истекает срок действия учетной записи, вам может понадобиться сбросить пароль один раз в последний раз. изменить пользователя aaa разблокировка учетной записи; Для полноты картины , если вам нужно изменить пользователя на другой профиль: ALTER USER Bob PROFILE MyNonExpiringProfile; . в запросе не выбрано ни одной строки "выберите профиль из DBA_USERS, где username = '<username>';"

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

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

Поскольку другие ответы указывают, что изменение профиля пользователя (например, профиля «ПО УМОЛЧАНИЮ») приведет к тому, что пароли, которые после установки никогда не истекут.

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

Решение для паролей с истекшим сроком действия с заблокированными учетными записями (как указано в ответе на комментарий) заключается в использовании одной версии команды ALTER USER:

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

Ниже приведен небольшой сценарий SQL * Plus, который привилегированный пользователь (например, пользователь 'SYS') может использовать для сброса пароля пользователя к текущему существующему хешированному значению, хранящемуся в базе данных.

РЕДАКТИРОВАТЬ: более старые версии Oracle хранят пароль или хэш пароля в столбце pword, более новые версии Oracle хранят хэш пароля в столбце spare4. Сценарий ниже изменен, чтобы собрать столбцы pword и spare4, но использовать столбец spare4 для сброса учетной записи пользователя; изменить по необходимости.

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

Как отключить срок действия пароля для этого пользователя (и всех других пользователей) на постоянной основе?

Я использую Oracle 11g, у которого есть пароли по умолчанию.

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

Чтобы изменить политику истечения срока действия пароля для определенного профиля пользователя в Oracle, сначала проверьте, какой профиль используется пользователем:

Затем вы можете изменить предел, чтобы никогда не истекать, используя:

Если вы хотите предварительно проверить лимит, вы можете использовать:

Это изменило профиль. Тем не менее, у меня есть пользователи, чьи пароли имеют срок действия, потому что профиль по умолчанию имел его при создании. Как изменить эти учетные записи, чтобы срок действия пароля не истек? select username,expiry_date,account_status from dba_users; для просмотра account_status. для тех аккаунтов, срок действия которых истекает, вам может понадобиться сбросить пароль один раз в последний раз. изменить пользователя aaa разблокировка учетной записи; Для полноты, если вам нужно сменить пользователя на другой профиль: ALTER USER Bob PROFILE MyNonExpiringProfile; ,

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

Затем reset пароль и разблокируйте учетную запись пользователя. Он никогда не должен истекать снова:

Как утверждают другие ответы, изменение профиля пользователя (например, профиль "DEFAULT" ) приведет к тому, что пароли, которые после этого будут установлены, никогда не истекут.

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

Решение для истекших паролей с заблокированными учетными записями (как указано в ответе на комментарий) заключается в использовании одной версии команды ALTER USER:

Однако команда unlock работает только для учетных записей, в которых фактически заблокирована учетная запись, но не для тех учетных записей, которые находятся в льготном периоде, когда пароль истек, но учетная запись еще не заблокирована. Для этих учетных записей пароль должен быть reset с другой версией команды ALTER USER:

Ниже немного SQL * Plus script, что привилегированный пользователь (например, пользовательский "SYS" ) может использовать для reset пароль пользователя для текущего существующего хешированного значения, хранящегося в базе данных.

Есть ли способ изменить статус учетной записи пользователя Oracle с EXPIRE(GRACE) на OPEN без сброса пароля?

Нет, вы не можете напрямую изменить статус учетной записи с EXPIRE (GRACE) на OPEN без сброса пароля.

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

Однако вы можете косвенно изменить статус на ОТКРЫТО, сбросив хэш пароля пользователя к существующему значению. К сожалению, установка хэша пароля сама по себе имеет следующие сложности, и почти в каждом другом решении пропускается хотя бы одна из этих проблем:

  1. Различные версии Oracle используют разные типы хэшей.
  2. Профиль пользователя может предотвратить повторное использование паролей.
  3. Ограничения профиля могут быть изменены, но мы должны изменить значения обратно в конце.
  4. Значения профиля не являются тривиальными, поскольку, если значение равно DEFAULT , это указатель на значение профиля DEFAULT . Возможно, нам потребуется рекурсивно проверить профиль.

Следующий, смехотворно большой блок PL/SQL, должен обрабатывать все эти случаи. Следует сбросить любую учетную запись на ОТКРЫТУЮ с тем же хешем пароля, независимо от версии Oracle или настроек профиля. И профиль будет изменен обратно на исходные пределы.

Чтобы остановить это в будущем, сделайте следующее.

  • Войдите в sqlplus как sysdba -> sqlplus "/ as sysdba"
  • Выполнить -> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;

Чтобы сбросить статус пользователя, выполните запрос:

и выполнить часть или весь набор результатов.

Это выведет что-то вроде этого:

Просто используйте первую часть этого с alter user:

Это вернет учетную запись в состояние OPEN без изменения пароля (при условии, что вы правильно вырезали и вставили значение хеша из вывода DBMS_METADATA.GET_DDL ) и вам даже не нужно знать, какой пароль.

Если вы знаете пароль этого пользователя или хотите его угадать, сделайте следующее:

  • alter user NAME_OF_THE_USER identified by OLD_PASSWORD;

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

Читайте также: