Изменение пароля с Oracle SQL Developer

101

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

Я не могу заставить команду sqlplus "пароль" работать в SQL-разработчике.

  • Когда я нажимаю run, я получаю недопустимую ошибку команды
  • Когда я нажимаю run script, ничего не происходит.

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

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

13 ответов

125

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

изменить пользователя имя_пользователя, идентифицированное "new_password" заменить "old_password" ;

Вы можете проверить дополнительные параметры этой команды здесь: http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_4003.htm#i2058207

  • 25
    Кроме того, вам может понадобиться заключить пароли в двойные кавычки, чтобы исключить любые специальные символы в пароле. Например, alter user __user_name__ identified by "newp@ss!!!" replace "oldp@ss!!!" Больше информации на asktom.oracle.com/pls/asktom/…
  • 5
    Если ваш pwd истек, удачи, войдите в систему, чтобы запустить это. Ответы Вопрос, но не вопрос.
77

На листе SQL:

введите "пароль" (без кавычек) Выделите, нажмите CTRL + ВВОД. Появится экран смены пароля.

  • 4
    Вы также можете сделать "пароль someusername"
  • 3
    Я полагаю, вы имеете в виду действие «Выполнить оператор». По умолчанию используется сочетание клавиш Ctrl + Enter .
38

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

Изображение 7140

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

Recap: для использования reset пароля для Oracle SQL Developer:

  • Вы должны распаковать Oracle Instant Client в каталоге
  • Вы должны добавить каталог Oracle Instant Client в путь пользователей
  • Затем вы должны перезапустить Oracle SQL Developer

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

См. http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/ для полного прохода

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

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

  • Установить путь к Instant Client в настройках → База данных → Дополнительно → Использовать Oracle Client
  • Проверить, что клиент экземпляра может быть успешно загружен с помощью параметров Configure... → Test... из диалогового окна настроек
  • (OS X) Обратитесь к этому вопросу, чтобы решить проблемы, связанные с переменной среды DYLD_LIBRARY_PATH. Я использовал следующую команду, а затем перезапустил SQL Developer, чтобы получить изменение:

    $launchctl setenv DYLD_LIBRARY_PATH/путь/to/oracle/instantclient_11_2

  • 1
    Доступно не для всех пользователей 80 (
  • 0
    хммм, похоже, не работает для меня. Интересно, действительно ли вам нужно обновить PATH на Mac?
Показать ещё 4 комментария
22

Ваши пользователи могут по-прежнему изменять свои пароли с помощью "alter user onlyTheirUserName, идентифицированного newpassword". Они не должны иметь привилегии ALTER USER, чтобы изменить свой собственный пароль.

11

В зависимости от настроек администратора вам может потребоваться указать свой старый пароль, используя опцию REPLACE

alter user <username> identified by <newpassword> replace <oldpassword> 
  • 0
    новый пароль и старый пароль могут быть одинаковыми?
  • 1
    Этот ответ неверен. newpassword и oldpassword транспонируются. Вместо этого используйте stackoverflow.com/a/10809140/643483
Показать ещё 2 комментария
10

Чтобы сделать это немного ясно:

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

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

8

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

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"
  • 2
    Этот ответ неверен. newpassword и oldpassword транспонируются. Вместо этого используйте stackoverflow.com/a/10809140/643483
2

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

Шаги:

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

  • найдите в дереве "Other_users" node, как показано ниже:

Изображение 7141

3.В дереве "Other_users" найдите своих пользователей, которым вы хотели бы reset пароль, и щелкните правой кнопкой мыши заметку и выберите "Редактировать пользователей"

Изображение 7142

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

Изображение 7143

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

1

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

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

вы можете найти пользователя в таблице DBA_USERS, например

SELECT profile
FROM dba_users
WHERE username = 'MacsP'

Теперь перейдите в sys/system (administrator) и используйте запрос

ALTER USER PRATEEK
IDENTIFIED BY "new_password"
REPLACE "old_password"

Чтобы проверить статус учетной записи, просто просмотрите

SELECT * FROM DBA_USERS.

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

0

Одно примечание для людей, у которых может не быть установленного пароля для 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;
0

Существует еще один способ reset пароля через командную строку...

1) Перейдите в папку базы данных Oracle (в моем случае Oracle Database 11g Express Edition) в меню START MENU.

2) В этой папке нажмите "Запустить командную строку SQL"

Изображение папки базы данных Oracle

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

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

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

Изменение пароля для hr

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

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

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

6) Повторите новый пароль

7) Сообщение отображается...

Пароль изменен Connected.

SQL >

8) GO TO Sql developer → введите новый пароль → подключен

  • 0
    Несмотря на то, что ФП все еще активен, через 5 лет после того, как вопрос был задан, ответ, возможно, уже не актуален.
  • 0
    @ Клубника, если она отвечает на вопрос, почему бы и нет? !!
0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню