Как поменять пароль в oracle sql developer
Создание пользователя мы с вами освоили. Давайте рассмотрим как уже созданного пользователя можно видоизменять. Допустим, вы хотите поменять ему пароль. Например, при создании БД пользователи SYS и SYSTEM получают пароли по умолчанию, которые просто необходимо заменить сразу же после создания БД. Иначе любой злоумышленник знакомый с БД Oracle может нанести вам большой ущерб. Для того, чтобы изменить пароль необходимо использовать команду ALTER — это так же довольно обширная команда и рассматривать все, что она может мы пока не будем. Сразу стоит отметить, что Oracle не допускает пароли типа 123456 или 543kolobok. Например, попробуйте следующее:
ALTER USER DUMMY IDENTIFIED BY 123456 /
ALTER USER DUMMY IDENTIFIED BY 123456 * ошибка в строке 1: ORA-00988: отсутствует или неверен пароль (пароли)
ALTER USER DUMMY IDENTIFIED BY 543kolobok /
ALTER USER DUMMY IDENTIFIED BY 543kolobok * ошибка в строке 1: ORA-00988: отсутствует или неверен пароль (пароли)
То есть пароли в Oracle должны начинаться с буквы, а не с цифры! Но в середине или в конце цифры применять можно! Я к стати до сих пор не могу понять, почему они так сделали? Хотя оставим это на усмотрение Oracle Inc. 🙂 Давайте изменим пароль для схемы DUMMY с DUMB на PIONER4:
ALTER USER DUMMY IDENTIFIED BY PIONER4 /
SQL> ALTER USER DUMMY IDENTIFIED BY PIONER4 2 / Пользователь изменен.
Вот теперь все верно! Пароль нашего пользователя изменен и мы можем в этом убедиться:
CONNECT DUMMY/PIONER4@PROBA
SQL> CONNECT DUMMY/PIONER4@PROBA Соединено.
Есть контакт! Таким же образом я рекомендую изменить пароли по умолчанию у схем SYS и SYSTEM. А, пока вернем коннект пользователю SYSTEM:
SQL> CONNECT SYSTEM/MANAGER@PROBA Соединено.
С помощью команды ALTER — можно так же менять квоты пользователя в табличных пространствах. Например, урезать DUMMY за плохое поведение квоту на табличном пространстве USERS до 50 Мб:
ALTER USER DUMMY QUOTA 50M ON USERS /
SQL> ALTER USER DUMMY 2 QUOTA 50M ON USERS 3 / Пользователь изменен.
Теперь DUMMY не выйдет за пределы 50 Мб. Чего ему вполне достаточно для нашего примера. Рассмотрим следующее понятие применимое к схеме БД, а именно профиль (Profile). С помощью профилей можно ограничить количество ресурсов системы и БД доступных для пользователя, а так же управлять ограничениями налагаемыми паролями. Если пользователю не назначен профиль по умолчанию, то будет использовать профиль DEFAULT (почти каламбур!).
Давайте создадим свой профиль и назначим его нашему пользователю:
CREATE PROFILE TODUMMY LIMIT PASSWORD_LIFE_TIME 180; /
SQL> CREATE PROFILE TODUMMY LIMIT 2 PASSWORD_LIFE_TIME 180; Профиль создан.
Созданный нами профиль ограничивает срок действия пароля до 180 дней. Давайте, определим этот профиль для пользователя DUMMY:
ALTER USER DUMMY PROFILE TODUMMY /
SQL> ALTER USER DUMMY 2 PROFILE TODUMMY 3 / Пользователь изменен.
Теперь срок действия пароля PIONER4 в схеме DUMMY будет всего 180 дней. А, после этого БД не будет принимать регистрации с данным паролем. При создании профилей используется ряд ограничивающих ресурсов. Чуть позже мы их опишем. Допустим, если у вас есть необходимость заблокировать определенного пользователя системы, это возможно сделать, применив все тот же ALTER USER:
ALTER USER DUMMY ACCOUNT LOCK /
Получим заблокированного пользователя:
SQL> ALTER USER DUMMY ACCOUNT LOCK 2 / Пользователь изменен.
И соответственно разблокировать пользователя:
ALTER USER DUMMY ACCOUNT UNLOCK /
Получим заблокированного пользователя:
SQL> ALTER USER DUMMY ACCOUNT UNLOCK 2 / Пользователь изменен.
Давайте рассмотрим так же такое понятие неразрывно связанное с пользователями БД, как роль (role). По своей сути роль это некая группа, в которой объединяются несколько привилегий. При использовании ролей можно изменять уровни привилегий для нескольких пользователей одновременно, что упрощает процесс администрирования в БД имеющей несколько сот пользователей. Для примера создадим роль DMROLE:
CREATE ROLE DMROLE /
SQL> CREATE ROLE DMROLE 2 / Роль создана.
Пока это «пустая» роль. Теперь назначаем ей ряд привилегий с помощью оператора GRANT, например ALTER SESSION:
GRANT ALTER SESSION TO DMROLE /
SQL> GRANT ALTER SESSION TO DMROLE 2 / Привилегии предоставлены.
А вот теперь отпишем эту роль для нашего пользователя DUMMY конечно же с помощью оператора GRANT:
GRANT DMROLE TO DUMMY /
SQL> GRANT DMROLE TO DUMMY 2 / Привилегии предоставлены.
Вот теперь схема DUMMY может использовать привилегию ALTER SESSION. И конечно же, самое главное — «Удаление пользователя»! Удалить пользователя и все объекты его схемы достаточно просто:
SQL> DROP USER DUMMY CASCADE 2 / Пользователь удален.
Ключевое слово CASCADE означает удалить все связанное со схемой (пользователем). Что то, как то грустно все у нас кончается. 🙂 Таким образом, теперь для вас я думаю, стала яснее картина создания схемы (пользователя) и работа с ней. Стоит отметить к слову, что назначение ролей пользователю БД не всегда оправдано, но как я уже сказал значительно облегчает администрирование. Думаю, вы уже заметили, что мы с вами работаем пока только через SQL*Plus. Есть и более продвинутые инструменты для администрирования БД Oracle, такое мощное средство как, например Enterprise Manager. Но это тема для отдельного рассказа. Да и пока его использование нам не столь необходимо. А вот вам задание создайте собственного пользователя и несколько объектов в нем и расскажите мне, что у вас получилось! Дерзайте! 🙂
Изменение пароля с помощью разработчика Oracle SQL
Я не хочу писать им пакет для изменения их паролей, так как у нас много баз данных. Есть ли у меня лучший вариант?
Поделиться Источник 21 июня 2010 в 16:10
15 ответов
Правильный синтаксис для обновления пароля с помощью SQL Developer:
alter user user_name идентификатор new_password replace old_password ;
Вы можете проверить больше вариантов этой команды здесь: ALTER USER-Oracle DOCS
Поделиться 30 мая 2012 в 02:09
- Введите «пароль» (без кавычек)
- Выделите, нажмите CTRL + ENTER .
- Скрин смены пароля появится.
Поделиться 04 февраля 2013 в 22:21
У разработчика SQL есть встроенная опция сброса пароля, которая может работать для вашей ситуации. Она также требует добавления моментального клиента Oracle на рабочую станцию. Когда клиент находится в пути, когда запускается SQL разработчик, вы получите включенную следующую опцию:

Мгновенному клиенту Oracle не нужны права администратора для установки, просто возможность писать в каталог и добавлять этот каталог в путь пользователей. Большинство пользователей имеют права сделать это.
Принятие: Чтобы использовать сброс пароля в разработчике Oracle SQL:
- Вы должны распаковать клиент Oracle в каталог
- Вы должны добавить каталог Oracle Instant Client в путь пользователей
- Затем вы должны перезапустить разработчик Oracle SQL
На этом этапе вы можете щелкнуть правой кнопкой мыши на источнике данных и сбросить свой пароль.
Альтернативная конфигурация для распознавания и использования мгновенного клиента на OS X со стороны разработчика SQL (проверено на версии 4.0.1):
- Установите путь к мгновенному клиенту в настройках -> База данных -> Дополнительно -> Используйте клиент Oracle
- Проверьте, что мгновенный клиент может быть успешно загружен с помощью параметров Configure. -> Test. из диалогового окна preferences
- (OS X) См. этот вопрос для решения проблем, связанных с переменной окружения DYLD_LIBRARY_PATH. Я использовал следующую команду, а затем перезапустил SQL Developer, чтобы получить изменения: $ launchctl setenv DYLD_LIBRARY_PATH /path/to/oracle/instantclient_11_2
Поделиться 07 марта 2013 в 17:59
Ваши пользователи все еще могут изменить свои пароли, изменив «имя пользователя onlyTheirUserName, идентифицированное по новому паролю». Им не нужно иметь привилегию ALTER USER, чтобы изменить свой собственный пароль.
Поделиться 21 июня 2010 в 17:03
В зависимости от настроек администратора, вам может потребоваться указать свой старый пароль с помощью опции ЗАМЕНИТЬ
alter user identified by replace
Поделиться 06 февраля 2012 в 14:13
Я понимаю, что есть много ответов, но я нашел решение, которое может быть полезно для некоторых. Я столкнулся с той же проблемой, я запускаю разработку Oracle sql на своем локальном компьютере и у меня есть куча пользователей. Я случайно запомнил пароль для одного из своих пользователей и использовал его для сброса пароля других пользователей.
- подключитесь к базе данных, используя действительный пользователь и пароль, в моем случае все мои пользователи истекли срок действия, кроме «системного», и я помню этот пароль
- найдите узел «Other_users» внутри дерева, как показано на изображении ниже

3. внутри дерева «Other_users» найдите своих пользователей, которым вы хотите сбросить пароль, и щелкните правой кнопкой мыши на примечании и выберите «Изменить пользователей»

4. Заполните новый пароль в диалоговом окне редактирования пользователя и нажмите «Применить». Убедитесь, что вы сняли флажок «Пароль истек (пользователь должен изменить следующий вход)».

И это сработало для меня, Это не так хорошо, как другое решение, потому что вам нужно иметь возможность войти хотя бы в одну учетную запись, но это работает.
Поделиться 03 января 2017 в 15:03
Чтобы немного ясно:
Если имя пользователя: abcdef и старый пароль: a123b456, новый пароль: m987n654
имеющий пользователя abcdef, идентифицированный m987n654, замените a123b456;
Поделиться 07 марта 2012 в 15:44
Я подтвердил, что это работает в SQL Developer 3.0.04. Наши пароли обязаны иметь специальный символ, поэтому в нашем случае нужна двойная кавычка строки. Конечно, это работает только если пароль еще не истек и вы в настоящее время вошли в систему.
ALTER USER MYUSERID IDENTIFIED BY "new#password" REPLACE "old#password"
Поделиться 15 ноября 2012 в 17:08
Попробуйте это решение если опция Сброс пароля (для SQL Developer) не сработала:
Шаг 1: Откройте командную строку SQL (из меню запуска, которая поставляется с пакетом установки SQL Developer)
Шаг 2: Выполните следующие команды:

Примечание: Если срок действия пароля уже истек, автоматически появится опция Изменение пароля для .
Поделиться 10 марта 2019 в 07:13
Есть еще один способ сбросить пароль через командную строку.
1) Перейдите в папку базы данных Oracle (в моем случае Oracle Database 11g Express Edition) в меню «Старт».
2) Внутри этой папки нажмите «Запустить SQL Commandline»
3) Введите «подключить имя пользователя/пароль» (ваше имя пользователя и старый пароль без кавычек)
4) Отображаемое сообщение выглядит так.
ОШИБКА: ORA-28001: срок действия пароля истек
Изменение пароля для hr
5) Введите новый пароль
6) Переведите новый пароль
7) Отображаемое сообщение.
Пароль изменен подключен.
8) Перейдите к разработчику Sql —> введите новый пароль —> подключен
Поделиться 22 ноября 2015 в 10:28
Встроенный вариант сброса пароля может не работать для пользователя. В этом случае пароль можно сбросить, используя следующий SQL-оператор:
ALTER user "user" identified by "NewPassword" replace "OldPassword";
Поделиться 16 августа 2013 в 13:05
Одно примечание для людей, у которых может отсутствовать установленный пароль для sysdba или sys и регулярно использовать сторонний клиент. Вот некоторые сведения о входе в командную строку sqlplus без пароля, который мне помог. Кстати, я использую fedora 21.
locate sqlplus
В моем случае, sqlplus находится здесь:
/u01/app/oracle/product/11.2.0/xe/config/scripts/sqlplus.sh
cd /u01/app/oracle/product/11.2.0/xe/config/scripts ./sqlplus.sh / as sysdba
Теперь вам нужно подключиться к базе данных со своими старыми учетными данными. Вы можете найти шаблон, предоставленный Oracle, в своем выводе:
Use "connect username/password@XE" to connect to the database.
В моем случае у меня есть пользователь «oracle» с паролем «oracle», поэтому мой ввод выглядит как
connect oracle/oracle@XE
Готово. Теперь введите новый пароль дважды. Тогда, если вы не хотите, чтобы ваш пароль больше истекал, вы можете запустить
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Поделиться 28 марта 2016 в 03:54
Теперь вы можете сделать это в SQL Developer 4.1.0.17, без необходимости в PL/SQL, предполагая, что у вас есть другая учетная запись, которая имеет административные привилегии:
- Создайте подключение к базе данных в SQL Developer 4.1.0.17 с альтернативным административным пользователем
- Разверните раздел «Другие пользователи», когда они подключились, и щелкните правой кнопкой мыши пользователя, чей пароль истек. Выберите «Изменить пользователя».
- Снимите флажок «Пароль истек. » и введите новый пароль для пользователя и нажмите «Сохранить».
- Задача выполнена! Вы можете проверить, подключившись к пользователю, чей пароль истек, чтобы подтвердить его действительность снова.
Поделиться 14 февраля 2015 в 09:28
Вы можете найти пользователя в таблице DBA_USERS, например
SELECT profile FROM dba_users WHERE username = 'MacsP'
Теперь перейдите в sys/system (администратор) и используйте запрос
ALTER USER PRATEEK IDENTIFIED BY "new_password" REPLACE "old_password"
Чтобы проверить статус учетной записи, просто перейдите через
SELECT * FROM DBA_USERS.
и вы сможете увидеть статус вашего пользователя.
Поделиться 03 октября 2013 в 18:16
Я использую версию 21.2.0.187 (выпущенную в июле 2021 года).
Существует кнопка сброса, которая позволяет сбросить пароль на новый пароль, как показано на следующих рисунках. Вы можете достичь ее, щелкнув правой кнопкой мыши на подключении.
Я удерживаю пароль, затем вхожу с новым паролем.
ALTER USER. Сменить пароль пользователя в SQL*Plus
Доброго времени суток. У меня случилась неприятность при работе с БД Oracle в программе SQL*Plus, пароль для схемы «SYSTEM» оказался просроченным. Я просто напросто забыл его сменить, прошло 7 дней и он «протух». А мне нужно работать с таблицей product_user_profile, права назначать. Поэтому решил написать небольшую заметку для себя, чтобы раз и навсегда запомнить как менять пароль юзера в SQL*Plus.
Что делать если протух пароль для SYSTEM в Oracle
Первым делом нужно подключиться с привилегиями SYSDBA от лица пользователя SYS. Сделать это можно двумя разными способами.
1.1) Если мы уже зашли под любым пользователем, то используем команду connect.
connect sys as sysdba
1.2) Иначе запустить SQL*Plus сразу с нужными привилегиями.
sqlplus «sys as sysdba»
В обоих случаях вводить пароль пользователя SYS, по умолчанию oracle.
2) Убедимся, что мы находимся в «главной» базе данных — CDB$ROOT.
ALTER SESSION SET container = CDB$ROOT;
3) Настал тот самый момент, когда можно менять пароль для SYSTEM, не забываем указать, чтобы это действо применилось ко всем контейнерам.
ALTER USER SYSTEM IDENTIFIED BY password container=all;
Смена пароля для любого пользователя
Проделываем тоже самое, но на последнем шаге не указываем контейнер.
ALTER USER username IDENTIFIED BY password;
Oracle кажется мудреной базой данных по сравнению со старым добрым MySQL, но я начинаю потихоньку разбираться. С помощью ALTER USER можно таких дел натворить, поэтому приложу ссылочку на официальный сайт с описанием всех чудес этой команды.
А самой запутанной вещью для меня пока является разница между CDB и PDB контейнерами, поэтому абсолютно точно я в этом разберусь и подробно опишу. Спасибо за внимание!
Изменение пароля
Администратор базы данных создает учетную запись и инициирует пароль для каждого пользователя. Пароль можно изменить с помощью инструкции ALTER USER .
В примере на слайде показано, что пользователь demo изменяет свой пароль с помощью инструкции ALTER USER .
ALTER USER user IDENTIFIED BY password;
- user имя пользователя;
- password новый пароль.
Хотя эта инструкция может использоваться для изменения пароля, существует много других возможностей. Для изменения любого другого параметра необходимо обладать привилегией ALTER USER .
Более подробно в руководстве Oracle Database 11g SQL Reference (Справочник по SQL для базы данных Oracle 11g).
Примечание. В SQL*Plus существует команда PASSWORD ( PASSW ), которая может использоваться для изменения пароля пользователя, когда пользователь зарегистрировался в системе. Эта команда недоступна в SQL Developer.
Далее: Разница между параметрами INITIALLY DEFERRED и INITIALLY IMMEDIATE