Смена пароля с Oracle SQL Developer


141

Многие из моих пользователей не используют SQLPlus. Я не могу дать им другого пользователя. Срок действия паролей истекает каждые 60 дней.

Я не могу получить команду SQLPlus "пароль" для работы в разработчике SQL.

  1. Когда я нажимаю "Выполнить", я получаю неверную командную ошибку
  2. Когда я нажимаю сценарий запуска, ничего не происходит.

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


4
Вы не можете изменить пароль с истекшим сроком действия в SQL Developer с помощью команды SQL. Он не поддерживается в стеке JDBC. Для этого вам понадобятся библиотеки OCI. Разработчик SQL имеет возможность сбросить пароль с истекшим сроком действия через стек OCI, если он был правильно установлен. См. Мой ответ для получения полной информации.
Frobbit 07

Вы можете сделать это с помощью SQL Developer 4.1.0.17. Смотрите мой ответ ниже.
Нечеткий анализ

Ответы:


194

Правильный синтаксис для обновления пароля с помощью SQL Developer :

alter user user_name identified by new_password replace old_password ;

Вы можете проверить дополнительные параметры этой команды здесь: ALTER USER-Oracle DOCS


31
Кроме того, вам может потребоваться заключить пароль (и) в двойные кавычки, чтобы избежать любых специальных символов в пароле. Например, alter user __user_name__ identified by "newp@ss!!!" replace "oldp@ss!!!"Дополнительная информация на asktom.oracle.com/pls/asktom/…
Bryant Bowman

6
Если срок действия вашего pwd истек, удачи вам войти в систему, чтобы запустить это. Ответы Вопрос, но не вопрос.
Бен Джордж

Итак, я просто запустил это. Для будущих читателей. Вы исправляете другую учетную запись (если вы "супер" с учетной записью Privs). Но вы не можете исправить СЕБЯ этим синтаксисом, ЕСЛИ У ВАС (СЕБЯ) уже истек срок действия. Урок выучен! Обратите внимание на предупреждения! Спасибо. Я использую Sql Developer (версия 19.4.0.354) против Oracle 18c .. FYI.
granadaCoder

106

На листе SQL:

  • Введите «пароль» (без кавычек)

  • Выделите, нажмите CTRL+ ENTER.

  • Появится экран смены пароля.


4
Вы также можете ввести "пароль someusername"
Анна

3
Я полагаю, вы имеете в виду действие «Выполнить оператор». По-видимому, ярлык по умолчанию - Ctrl + Enter .
Альваро Гонсалес

70

В SQL Developer есть встроенная опция сброса пароля, которая может работать в вашей ситуации. Это также требует добавления Oracle Instant Client на рабочую станцию. Когда мгновенный клиент находится на пути при запуске SQL-разработчика, вы получите следующий параметр:

Разработчик SQL: раскрывающееся меню с возможностью сброса пароля

Oracle Instant Client не требует прав администратора для установки, только возможность записывать в каталог и добавлять этот каталог в путь пользователя. Большинство пользователей имеют на это права.

Резюме: Чтобы использовать сброс пароля в Oracle SQL Developer:

  1. Вы должны распаковать Oracle Instant Client в каталог
  2. Вы должны добавить каталог Oracle Instant Client в путь пользователя.
  3. Затем необходимо перезапустить Oracle SQL Developer.

На этом этапе вы можете щелкнуть правой кнопкой мыши источник данных и сбросить пароль.

См. Http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/ для полного пошагового руководства.

Также см. Комментарий в документации оракула: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808

Альтернативная конфигурация, позволяющая SQL Developer (проверено в версии 4.0.1) распознавать и использовать Instant Client в OS X:

  1. Установите путь к Instant Client в Preferences -> Database -> Advanced -> Use Oracle Client
  2. Убедитесь, что клиент экземпляра может быть успешно загружен, используя параметры Configure ... -> Test ... в диалоговом окне настроек
  3. (OS X) Обратитесь к этому вопросу, чтобы решить проблемы, связанные с переменной среды DYLD_LIBRARY_PATH. Я использовал следующую команду, а затем перезапустил SQL Developer, чтобы принять изменения:

    $ launchctl setenv DYLD_LIBRARY_PATH / путь / к / оракулу / Instantclient_11_2


1
Доступно не для всех пользователей 80 (
Кенг

хммм, похоже, у меня не работает. Интересно, действительно ли обновление PATH - это все, что вам нужно сделать на Mac.
fudo

Я использую Mac дома, но на работе компьютер с Windows. Скоро мы перейдем на Mac .. Если я найду подробности, я отправлю их.
Frobbit

1
Google очень помогает :-) с ним я нашел: oracle.com/technetwork/topics/linuxx86-64soft-092277.html, который может устареть. Чтобы снова погуглить,
Frobbit

1
Спасибо, сработало на Windows 7 64bit. Однако мне пришлось пройти дополнительный шаг (который аналогичен первому шагу в конфигурации OS X выше), иначе опция «сбросить пароль» останется серой. 4. Задайте путь к Instant Client в Preferences -> Database -> Advanced -> Use Oracle Client
marciowerner

24

Ваши пользователи по-прежнему могут изменять свои пароли с помощью «только изменить имя пользователя, имя пользователя, идентифицированное новым паролем». Им не обязательно иметь привилегию ALTER USER для изменения собственного пароля.


16

В зависимости от настроек администратора вам может потребоваться указать старый пароль с помощью опции ЗАМЕНИТЬ

alter user <username> identified by <newpassword> replace <oldpassword> 

могут ли новый пароль и старый пароль совпадать?
Харис Мехмуд

2
Это неверный ответ. newpassword и oldpassword заменяются. Вместо этого используйте stackoverflow.com/a/10809140/643483
Аарон Курцхалс, 07

1
@AaronKurtzhals Ответ, на который вы ссылаетесь, говорит о том же, что и мой ответ. Ссылка на документы оракула здесь: docs.oracle.com/cd/B19306_01/server.102/b14200/…
Джерри Гуревич

Главное, что нужно добавить (что было сделано @pgs в его ответе на тот же вопрос), это то, что вам может потребоваться заключить пароли в кавычки, если они содержат специальные символы.
Джерри Гуревич

10

Чтобы было немного понятно:

Если имя пользователя: abcdef и старый пароль: a123b456, новый пароль: m987n654

изменить пользователя abcdef, идентифицированного m987n654, заменить a123b456 ;


9

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

Шаги:

  1. подключиться к базе данных с использованием действующего пользователя и пароля, в моем случае срок действия всех моих пользователей истек, кроме «system», и я помню этот пароль

  2. найдите узел "Other_users" в дереве, как показано на изображении ниже.

введите описание изображения здесь

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

введите описание изображения здесь

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

введите описание изображения здесь

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


7

Я подтвердил, что это работает в SQL Developer 3.0.04. Наши пароли должны иметь специальный символ, поэтому в нашем случае нужна строка в двойных кавычках. Конечно, это работает только в том случае, если срок действия пароля еще не истек, и вы в настоящее время вошли в систему.

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"

3
Это неверный ответ. newpassword и oldpassword заменяются. Вместо этого используйте stackoverflow.com/a/10809140/643483
Аарон Курцхалс, 07

3

Попробуйте это решение, если опция сброса пароля (в SQL Developer) не работает :

Шаг 1. Откройте командную строку «Выполнить SQL» (из меню «Пуск», которое поставляется с установочным пакетом SQL Developer).

Шаг 2: Выполните следующие команды:

введите описание изображения здесь

Примечание: если срок действия пароля уже истек, Changing password for <user>опция появится автоматически.


2

Встроенная опция сброса пароля может не работать для пользователя. В этом случае пароль можно сбросить с помощью следующего оператора SQL:

ALTER user "user" identified by "NewPassword" replace "OldPassword";

1

вы можете найти пользователя в таблице 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.

и вы можете увидеть статус вашего пользователя.


1

Теперь вы можете сделать это в SQL Developer 4.1.0.17 , PL / SQL не требуется, если у вас есть другая учетная запись с административными привилегиями:

  1. Создайте подключение к базе данных в SQL Developer 4.1.0.17 с альтернативным администратором
  2. Разверните раздел «Другие пользователи» после подключения и щелкните правой кнопкой мыши пользователя, срок действия пароля которого истек. Выберите «Редактировать пользователя».
  3. Снимите флажок «Срок действия пароля истек ...», введите новый пароль для пользователя и нажмите «Сохранить».
  4. Работа сделана! Вы можете проверить, подключившись к пользователю, срок действия пароля которого истек, чтобы убедиться, что он снова действителен.

1

Есть еще один способ сбросить пароль через командную строку. ...

1) Перейдите в папку базы данных Oracle (в моем случае Oracle Database 11g Express Edition) в НАЧАЛЬНОМ МЕНЮ.

2) В этой папке щелкните «Запустить командную строку SQL».

Образ папки базы данных Oracle

3) Введите " подключите имя пользователя / пароль" » (ваше имя пользователя и старый пароль без кавычек)

4) Отображаемое сообщение ...

ОШИБКА: ORA-28001: срок действия пароля истек.

Смена пароля на час

-> Новый пароль:

Введите имя пользователя, пароль, изображение

5) Введите новый пароль

6) Введите новый пароль еще раз

7) Отображаемое сообщение ...

Пароль изменен Подключен.

SQL>

8) ПЕРЕЙДИТЕ К разработчику Sql -> введите новый пароль -> подключено


Хотя ОП все еще активен, через 5 лет после того, как вопрос был задан, ответ может больше не иметь значения.
Strawberry

@Strawberry, если он отвечает на вопрос, почему бы и нет? !!
Мухаммед Рефаат

1

Одно замечание для людей, у которых может не быть установленного пароля для 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;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.