Насколько я могу судить, есть два способа изменить чей-то пароль:
- подключиться как этот пользователь
- подключиться как привилегированный пользователь (такой как SYS)
и выполните такую команду:
alter user scott identified by tiger;
Поскольку вы захотите сделать это для любой базы данных, к которой у вас есть доступ, а также для каждого пользователя в этих базах данных, я сомневаюсьчто вы знаете их пароли, поэтому я предполагаю, что вы будете подключаться как привилегированный пользователь ко всем этим базам данных. Конечно, вы должны знать их пароли.
Один из вариантов:
- создавать одну и ту же хранимую процедуру (которая будет изменять чей-то пароль) в каждомбаза данных
- примет имя пользователя и новый пароль
- , поскольку
alter table
- это DDL, вам придется использовать динамический SQL (execute immediate
)
- создайте ссылки на базы данных на эти базы данных в схеме, которую вы используете для подключения к приложению Apex
- , в зависимости от выбранной вами базы данных, вызовите соответствующую процедуру через ссылку на базу данных и передайте выбранное имя пользователя и его новый пароль. Это может также потребовать некоторого динамического SQL, если вы хотите использовать другое имя ссылки на БД
Я не знаю, какую версию базы данных вы используете, но - посмотрите на 11g Доступи Изменение информации в нескольких базах данных , особенно глава «Запуск хранимой процедуры в удаленной базе данных Oracle» для получения дополнительной информации.