Многие из моих пользователей не используют SQLPlus. Я не могу дать им изменить пользователя. Мы истекаем пароли каждые 60 дней.
Я не могу заставить команду SQLPlus “пароль” работать в SQL-разработчике.
- Когда я нажимаю Run, я получаю неверную ошибку команды
- Когда я нажимаю “Выполнить скрипт”, ничего не происходит.
Я не хочу писать им пакет для изменения их паролей, так как у нас много баз данных. У меня есть лучший вариант?
Правильный синтаксис для обновления пароля с помощью SQL Developer:
alter user
user_name
identified by
new_password
replace
old_password
;
Вы можете проверить дополнительные параметры для этой команды здесь: ALTER USER-Oracle DOCS
В листе SQL:
-
Введите “пароль” (без кавычек)
-
Выделите, нажмите CTRL + ENTER.
-
Появится экран смены пароля.
У SQL Developer есть встроенная опция пароля reset, которая может работать для вашей ситуации. Это требует добавления Oracle Instant Client на рабочую станцию. Когда мгновенный клиент находится в пути при запуске SQL-разработчика, вы получите следующий параметр:
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
Ваши пользователи могут по-прежнему изменять свои пароли с помощью “alter user onlyTheirUserName, идентифицированного newpassword”. Они не должны иметь привилегии ALTER USER, чтобы изменить свой собственный пароль.
В зависимости от настроек администратора вам может потребоваться указать свой старый пароль, используя опцию REPLACE
alter user <username> identified by <newpassword> replace <oldpassword>
Чтобы сделать это немного ясно:
Если имя пользователя: abcdef и старый пароль: a123b456, новый пароль: m987n654
изменить пользователя abcdef, идентифицированный m987n654 заменить a123b456;
Я подтвердил, что это работает в SQL Developer 3.0.04. Наши пароли должны иметь специальный символ, поэтому в нашем случае необходима строка с двойными кавычками. Конечно, это работает только в том случае, если пароль еще не истек, и вы в настоящее время вошли в систему.
ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"
Я понимаю, что есть много ответов, но я нашел решение, которое может быть полезным для некоторых. Я столкнулся с той же проблемой, на моем локальном компьютере я запускаю oracle sql development, и у меня есть группа пользователей. Мне запомнился пароль одного из моих пользователей, и я использовал его для сброса пароля других пользователей.
Этапы:
-
подключиться к базе данных, используя действительные имя пользователя и пароль, в моем случае срок действия всех моих пользователей истек, кроме “system”, и я помню этот пароль
-
найдите узел “Other_users” в дереве, как показано на изображении ниже
3.В дереве “Other_users” найдите пользователей, для которых вы хотите сбросить пароль, щелкните правой кнопкой мыши заметку и выберите “Редактировать пользователей”
4. Заполните новый пароль в диалоговом окне редактирования пользователя и нажмите “Применить”. Убедитесь, что вы сняли флажок “Срок действия пароля истек (пользователь должен изменить следующий логин)”.
И это сработало для меня. Это не так хорошо, как другие решения, потому что вам нужно иметь возможность войти хотя бы в одну учетную запись, но она работает.
Встроенная опция пароля reset может не работать для пользователя. В этом случае пароль может быть reset, используя следующий оператор SQL:
ALTER user "user" identified by "NewPassword" replace "OldPassword";
Попробуйте это решение , если параметр “Сбросить пароль” (в SQL Developer) не работает:
Шаг 1. Откройте командную строку “Выполнить SQL” (из меню “Пуск”, которое входит в установочный пакет SQL Developer)
Шаг 2. Выполните следующие команды:
Примечание: Если срок действия пароля уже истек, автоматически появится опция Changing password for <user>
.
вы можете найти пользователя в таблице 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.
и вы можете видеть статус своего пользователя.
Теперь вы можете сделать это в SQL Developer 4.1.0.17, не требуется PL/SQL, если у вас есть другая учетная запись с правами администратора:
- Создайте соединение с базой данных в SQL Developer 4.1.0.17 с альтернативным административным пользователем
- Разверните раздел “Другие пользователи” после подключения и щелкните правой кнопкой мыши пользователя, пароль которого истек. Выберите “Изменить пользователя”.
- Снимите флажок “Истек срок действия пароля…”, введите новый пароль для пользователя и нажмите “Сохранить”.
- Работа выполнена! Вы можете проверить, подключившись к пользователю, чей пароль истек, чтобы подтвердить, что он снова действителен.
Существует еще один способ 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 → введите новый пароль → подключен
Одно примечание для людей, у которых может не быть установленного пароля для 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;