Молодогвардейцев 454015 Россия, Челябинская область, город Челябинск 89085842764
MindHalls logo

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 можно таких дел натворить, поэтому приложу ссылочку на официальный сайт с описанием всех чудес этой команды.

Полезная ссылка: официальная документация по ALTER USER

А самой запутанной вещью для меня пока является разница между CDB и PDB контейнерами, поэтому абсолютно точно я в этом разберусь и подробно опишу. Спасибо за внимание!