Oracle password expired как убрать

Обновлено: 04.07.2024

В посте рассматривается способ разблокировки и доступа к учебному и тестовому пользователю (схемы) HR в базе данных Oracle Database 18c Express Edition. Рассмотрены следующие вопросы:

  • Краткий обзор Multitenant архитектуры
  • Разблокировка пользователя HR
  • Multitenant
  • Flashback Table
  • Flashback Database
  • Oracle Partitioning
  • In-Memory Column Store и Aggregation
  • Advanced Analytics и Security
  • Online Index Rebuild
  • Online Table Redefinition
  • Query Results Cache и PL/SQL Function Result Cache
  • Oracle Advanced Compression
  • Materialized View Query Rewrite
  • Oracle Spatial and Graph
  • Bitmap Indexes

Разблокировка пользователя (схемы) HR

Предполагается, что есть успешно установленная Oracle Database 18c Express Edition. При необходимости, можно установить Oracle Database 18c Express Edition используя следующие материалы: установка Oracle Database 18c Express Edition на Linux и установка Oracle Database 18c Express Edition на Windows. Нижеописанные шаги будут работать с Oracle Database 18c Express Edition, установленной, как на операционную систему Linux, так и на Windows.

Вариант разблокировки с помощью SQL*Plus.

Шаг 1. Подключение к CDB

Выполняется подключение к CDB с помощью пользователя sys с ролью as sysdba:

Подключение успешно прошло к CDB. Далее проверяется имя и идентификатор CDB.

Результат запроса показывает, что CDB имеет имя XE и ее уникальный идентификатор = 0. По умолчанию, после установки Oracle Database 18c Express Edition есть одна PDB с именем XEPDB1. Следующий запрос покажет существующие PDB.

Проверяется наличие пользователя HR в CDB.

Запрос не вернул данные. Это означает, что пользователя HR нет в CDB. Далее необходимо подключиться к PDB и найти там HR.

Шаг 2. Подключение к PDB

Есть два способа подключиться к PDB с использованием SQL*Plus.

Способ 1. Находясь в CDB, подключиться к PDB используя команду alter session. В примере ниже происходит переключение из сеанса CDB к PDB с именем XEPDB1:

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

Запросы показывают характеристики существующей PDB (Шаг 1.).

Способ 2. Можно подключиться к PDB с консоли операционной системы, указав параметры подключения.

Ниже выполняется подключение к PDB под пользователем sys с указанием IP адреса сервера БД, порта и имени PDB (по умолчанию для созданной PDB (XEPDB1) используется порт 1539):

Подключение прошло успешно.

Для информации: Администраторы баз данных временами выполняют подключение к БД используя аутентификацию на уровне операционной системы с помощью команды sqlplus / as sysdba и без указания пароля. При запуске этой команды в среде с Multitenant архитектурой будет осуществлено подключение к CDB. Для того, чтобы напрямую подключиться к PDB минуя CDB, используется sqlplus / as sysdba и без указания пароля, также необходимо в переменную среду операционной системы добавить новый системный параметр ORACLE_PDB_SID и в его значении указать название PDB. Этот параметр для подключения к PDB без указания пароля могут осуществлять только пользователи sys и system. Остальные пользователи будут автоматически подключены к CDB, если не укажут параметры подключения к PDB. Ниже описываются шаги подключения к PDB для пользователя sys с применением параметра ORACLE_PDB_SID в переменной среде операционной системы. Это очень удобный способ для администраторов баз данных:

Подключение к PDB прошло успешно напрямую из операционной системы без указания пароля и параметров подключения PDB. Далее проверяется имя и идентификатор PDB.

После успешного подключения к PDB c использованием одного из двух способов определяется наличие пользователя HR, а также его статус.

Запускается запрос поиска пользователя HR среди всех существующих пользователей в XEPDB1:

Получен результат, подтверждающий наличие пользователя HR в PDB.

При помощи запроса определяется имя, статус и дата блокировки пользователя HR:

Шаг 3. Разблокировка пользователя HR

После установки Oracle Database 18c Express Edition учетная запись HR заблокирована и пароль у нее просрочен (необходимо задать новый пароль) (см. предыдущий шаг – Шаг 2.). В этом случае, система позволяет сделать запросы к объектам HR (таблицам, представлениям, функциям и т.п.) от имени других пользователей при наличии соответствующих привилегий. Например, при выполнении запроса на определение количества строк в таблице EMPLOYEES пользователя HR под пользователем SYS система успешно выдаст следующий результат:

Для пользователя HR назначается новый пароль:

При попытке подключения к PDB, не разблокировав пользователя, можно получить следующую ошибку:

Необходимо заново подключиться к PDB под пользователем sys:

и разблокировать пользователя HR следующей командой:

Операции назначения пароля и разблокировки пользователя HR прошли успешно. Проверяется статус пользователя:

Пользователь HR разблокирован и новый пароль активен. Это означает, что теперь можно подключиться к PDB с именем XEPDB1 под учебным тестовым пользователем HR и начать работу.

Шаг 4. Подключение к PDB с учетной записью HR.

Используя данные для подключения к PDB, выполняется вход систему под учетной записью HR и запускается запрос для определения количества строк в его таблице EMPLOYEES.

На этом завершается определение наличия пользователя, назначение ему пароля и разблокировка HR в PDB Oracle Database 18c Express Edition, а также выполнение запроса к его объекту с помощью SQL*Plus.

Вариант разблокировки с помощью SQL Developer.

Шаг 1. Подключение к CDB

Для этого создается новое подключение в SQL Developer и указываются необходимые параметры подключения к CDB, такие как:

Name: XE_18c
Указывается имя соединения, которое позволяет однозначно идентифицировать CDB при подключении.

IP: 192.168.0.1
IP адрес сервера БД.

Port: 1539
Порт подключения к БД.

SID: XE
SID или имя CDB.

Username: sys
Указывается имя пользователя для подключения к БД.

Role: SYSDBA
Подключение к БД осуществляется пользователем sys. Данный пользователь может подключиться только с ролью SYSDBA.

Password:
Пароль пользователя sys, который был назначен во время установки базы данных.


После нажатия Connect произойдет успешное подключение к CDB с именем XE. Далее проверяется имя, идентификатор и версия CDB, а также выводятся существующие PDB.


Как и ожидалось, выведенные выше данные идентичны полученным с помощью SQL*Plus.

Далее проверяется наличие пользователя HR в CDB.


Запрос не вернул данные, это означает, что пользователя HR нет в CDB. Теперь необходимо подключиться к PDB и проверить наличие HR в PDB.

Шаг 2. Подключение к PDB

Создается новое подключение в SQL Developer и указываются необходимые параметры подключения к подключаемой базе данных XEPDB1, такие как:

Name: XEPDB1_18c
Указывается имя соединения, которое позволяет однозначно идентифицировать PDB при подключении.

IP: 192.168.0.1
IP адрес сервера БД.

Port: 1539
Порт подключения к БД.

SID: XEPDB1
SID или имя PDB.

Username: sys
Указывается имя пользователя для подключения к БД.

Role: SYSDBA
Подключение к БД осуществляется пользователем sys. Данный пользователь может подключиться только с ролью SYSDBA.

Password:
Пароль пользователя sys, который был назначен во время установки базы данных. Пользователи sys и system могут подключиться с одним и тем же паролем и к CDB и к PDB.


После нажатия Connect произойдет успешное подключение к подключаемой БД XEPDB1. Далее проверяется имя и идентификатор.


Результаты показывают, что было подключение к PDB с именем XEPDB1 и идентификатором 3. Определяется наличие пользователя HR в этой PDB. В иерархии дерева надо выбрать «Other Users» в соединении с именем XEPDB1_18c как показано на скриншоте:


В списке пользователей необходимо найти пользователя HR и нажать на правую кнопку. Из контекстного меню выбрать «Edit User». Откроется новое модальное окно «Edit User» как показано на скриншоте. Как видно на скриншоте учетная запись HR заблокирована (Account is Locked) и пароль у нее просрочен (Password Expired):


Шаг 3. Разблокировка пользователя HR:

В продолжение предыдущего шага необходимо:

  1. Задать идентичный пароль в полях New Password (новый пароль) и Confirm Password (подтвердить пароль).
  2. Снять галочку из пункта Password Expired (user must change next login).
  3. Снять галочку из пункта Account is Locked для разблокировки пользователя.
  4. Нажать Apply.

Пользователь HR разблокирован и ему назначен пароль. Это означает, что теперь можно подключиться к PDB с именем XEPDB1 под учебным тестовым пользователем HR и начать работу.

Шаг 4. Подключение к PDB с учетной записью HR.

Создается новое подключение в SQL Developer и указываются необходимые параметры подключения к подключаемой базе данных XEPDB1 с пользователем HR, такие как:

Name: XEPDB1_18c_hr
Указывается имя соединения, которое позволяет однозначно идентифицировать PDB при подключении с пользователем HR.

IP: 192.168.0.1
IP адрес сервера БД.

Port: 1539
Порт подключения к БД.

SID: XEPDB1
SID или имя PDB.

Username: HR
Указывается имя пользователя для подключения к БД.

Role: default
Подключение к БД осуществляется пользователем HR. Данный пользователь не может использовать роль SYSDBA.

Password:
Пароль, который был назначен пользователю HR на третьем шаге, то есть hr.


После нажатия Connect произойдет успешное подключение к PDB с именем XEPDB1 под пользователем HR. Выполняется запрос для определения количества строк в таблице EMPLOYEES:


На этом завершается определение наличия пользователя, назначение ему пароля и разблокировка HR в PDB Oracle Database 18c Express Edition, а также выполнение запроса к его объекту с помощью SQL Developer.

Я использую 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 Читайте: 124976 раз

Решение может пройти следующее утверждение SQL

Примечание. Во-первых, вам нужно использовать логин DBA.

Запустите инструмент командной строки SQLPLUS, введите:

connect as sysdba;

Введите имя пользователя и пароль DBA.

SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'

Срок действия пароля запросов устанавливается, поле пределов - это количество паролей действительных дней.

Когда пароль истекает или истек истек, пароль может быть изменен, изменяя пароль, и пользователь может подключаться к базе данных, как правило, после модификации пароля.

Изменение имени пользователя, идентифицированное паролем;

Если вы хотите удалить 180-дневный проживающий цикл выживания пароля, вы можете закрыть его после следующего оператора SQL.

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

Если оператор SQL, срок действия пароля составляет 180 дней для изменения «неограниченного». Однако для соображений безопасности баз данных не рекомендуется установить значение Password_life_Time в неограниченное внимание, рекомендуется регулярно модифицировать пароль пользователя базы данных.


Срок действия пароля Oracle истек на пароль истекший решение

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

Эта проблема вызвана паролем Oracle11g.

Исключение возникает при отладке веб-проекта:

[java] view plain copyprint?

java.sql.SQLException: ORA-28001: the password has expired

Проверьте его онлайн, подключите Oracle, войти в Oracle пользователей, введите следующую команду

[sql] view plain copyprint?

select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

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