а как вытащить PASSWORD_CHANGE_DATE в расширение
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
kaa Участник - экстремал
Вступление в Клуб: 20.01.2020
|
Сб Дек 24, 2022 12:48  а как вытащить PASSWORD_CHANGE_DATE в расширение |
|
Полезность: Нет оценки
|
представления пользователей
из dba_users
-PASSWORD_CHANGE_DATE
-LAST_LOGIN
через PL|SQL чот не получилось |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Ср Дек 28, 2022 14:48   |
|
Полезность: 1
|
В библиотеке объявить public переменную
Код: | type t_dba_users is varray(0) of dba_users%rowtype; |
Создать функцию, возвращающую данные из этой таблицы
Код: | public function g_dba_users return t_dba_users is
r dba_users%rowtype;
begin
for (
select u(
u.username : username
,u.user_id : user_id
…
)
in dba_users%rowtype
) loop
r. username := u.username;
r.user_id := user_id;
…
return r;
еnd loop;
end; |
В представлении Код: | select … in ::[].[LIB].g_dba_users |
|
|
 |
kaa Участник - экстремал
Вступление в Клуб: 20.01.2020
|
Сб Янв 07, 2023 22:45   |
|
Полезность: Нет оценки
|
о! спасибо.
сделал:
Код: | public function userLastLogin(z ref [USER]) return varchar2(30) is
dt date;
begin
begin
select u(u.LAST_LOGIN)
in dba_users%rowtype
where u.username = z.username
INTO dt;
exception
when NO_DATA_FOUND then NULL;
when OTHERS then NULL;
end;
return to_char(dt,'DD/MM/YYYY HH24:MI:SS');
end;
public function user_PASSWORD_CHANGE_DATE(z ref [USER]) return varchar2(30) is
dt date;
begin
begin
select u(u.PASSWORD_CHANGE_DATE)
in dba_users%rowtype
where u.username = z.username
INTO dt;
exception
when NO_DATA_FOUND then NULL;
when OTHERS then NULL;
end;
return to_char(dt,'DD/MM/YYYY HH24:MI:SS');
end;
public function user_LOCK_DATE(z ref [USER]) return varchar2(30) is
dt date;
begin
begin
select u(u.LOCK_DATE)
in dba_users%rowtype
where u.username = z.username
INTO dt;
exception
when NO_DATA_FOUND then NULL;
when OTHERS then NULL;
end;
return to_char(dt,'DD/MM/YYYY HH24:MI:SS');
end;
public function user_EXPIRY_DATE(z ref [USER]) return varchar2(30) is
dt date;
begin
begin
select u(u.EXPIRY_DATE)
in dba_users%rowtype
where u.username = z.username
INTO dt;
exception
when NO_DATA_FOUND then NULL;
when OTHERS then NULL;
end;
return to_char(dt,'DD/MM/YYYY HH24:MI:SS');
end;
public function user_CREATED(z ref [USER]) return varchar2(30) is
dt date;
begin
begin
select u(u.CREATED)
in dba_users%rowtype
where u.username = z.username
INTO dt;
exception
when NO_DATA_FOUND then NULL;
when OTHERS then NULL;
end;
return to_char(dt,'DD/MM/YYYY HH24:MI:SS');
end;
|
добавил еще полей нужных
не оптимизировано правда, но работает )
а вот как сделать разблокировку пользователя, задание ему нового пароля и сделать как будто истек пасс?
на орагле я делал так:
Код: | alter user username account unlock;
alter user username IDENTIFIED BY A12345678;
alter user username password expire;
commit;
|
а делаю в операции begin pl/sql
у меня операция становится в PROCESSED и не работает (( |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Вт Янв 10, 2023 12:06   |
|
Полезность: 1
|
Посмотрите в текстах операций использование процедуры Secadmin.EditUser или сам пакет или поиск по форуму EditUser |
|
 |
kaa Участник - экстремал
Вступление в Клуб: 20.01.2020
|
Ср Мар 08, 2023 02:08   |
|
Полезность: Нет оценки
|
получилось:
Код: |
secadmin.EditUser(this.[USERNAME],null,LockStatus=='TO_EXPIRE');
secadmin.EditUser(this.[USERNAME],null,UserPass==P_NEW_PSWD);
|
|
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|