CftClub.ru
Клуб специалистов ЦФТ-Банк

Сменить профиль пользователю

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Администрирование доступа
Предыдущая тема :: Следующая тема  
Автор Сообщение
lexus
Профи
Межтопэнергобанк (вкл. Алемар)
Совладелец


Вступление в Клуб: 28.09.2007
СообщениеВт Авг 11, 2015 08:35   Сменить профиль пользователю Ответить с цитатой
Полезность: Нет оценки
Здравствуйте!

Изменяю пользователю профиль. При этом пароль пользователя становится EXPIRED Sad
Можно как-то сделать, чтобы при изменении профиля пароль не протухал?
Делаю под IBS. И у него нет прав alter user.

Код:
    for i in v_usr_Arr.first..v_usr_arr.last
    loop
        select name, properties into v_name, v_prop from users where username = v_usr_arr(i);
        secadmin.ModifyProps(cProperties => v_prop, PropName => 'PROFILE', bSet => false);
        secadmin.ModifyProps(cProperties => v_prop, PropName => 'PROFILE DEFAULT_ATEST', bSet => true);
       -- DBMS_OUTPUT.PUT_LINE(v_prop);
        SECADMIN.EDITUSER(v_usr_arr(i), v_name, 'U', null, v_prop, '', null, null);
       
    end loop;
molokov
Участник со стажем
Неподтвержденный


Вступление в Клуб: 28.09.2007
СообщениеСр Авг 12, 2015 08:12    Ответить с цитатой
Полезность: 1
Привет, Алексей !
Без alter не как, если ни хочется чтобы пароль не протухал.
Попроси на время.
в 2006 году делал так :

declare
NONEXISTING_PROFILE exception;
pragma exception_init(NONEXISTING_PROFILE, -2380);
prp varchar2(20) := '|PROFILE';
prps varchar2(2000);
pos1 pls_integer;
pos2 pls_integer;
usrName varchar2(30);
profileName varchar2(16) := upper(trim('DEFAULT_ATEST'));
begin

FOR cr IN (select username usrName
from ibs.users where username like 'USER%' )
LOOP
begin
select trim(properties) into prps from ibs.users
where username = cr.usrName;
exception when NO_DATA_FOUND then
dbms_output.put_line('Пользователь не найден.');
return;
end;
pos1 := instr(prps, prp);
if pos1 > 0 then
pos2 := instr(prps, '|', pos1 + 1);
if pos2 > 0 then
prps := substr(prps, 1, pos1 - 1) || substr(prps, pos2);
else
prps := substr(prps, 1, pos1 - 1);
end if;
end if;
if nvl(substr(prps, 1, 1), ' ') <> '|' then
prps := '|' || prps;
end if;
prps := prp || ' ' || profileName || prps;

update ibs.users set properties = prps
where username = cr.usrName;
commit;
begin
execute immediate 'alter user ' || cr.usrName || ' profile ' || profileName;
exception when NONEXISTING_PROFILE then
null;
end;
dbms_output.put_line('Признак установлен.');

COMMIT;
END LOOP;
end;
yaffil
Профи
Неподтвержденный


Вступление в Клуб: 18.08.2011
СообщениеСр Авг 12, 2015 10:07    Ответить с цитатой
Полезность: Нет оценки
Что изголяетесь? Laughing
Не проще вот так делать? http://cftclub.ru/viewtopic.php?t=4078
molokov
Участник со стажем
Неподтвержденный


Вступление в Клуб: 28.09.2007
СообщениеСр Авг 12, 2015 11:40    Ответить с цитатой
Полезность: Нет оценки
тут вопрос был в другом -" При этом пароль пользователя становится EXPIRED"
yaffil
Профи
Неподтвержденный


Вступление в Клуб: 18.08.2011
СообщениеСр Авг 12, 2015 11:52    Ответить с цитатой
Полезность: Нет оценки
Я под sys делаю, у меня ничего не EXPIRED Rolling Eyes
lexus
Профи
Межтопэнергобанк (вкл. Алемар)
Совладелец


Вступление в Клуб: 28.09.2007
СообщениеСр Авг 12, 2015 13:04    Ответить с цитатой
Полезность: Нет оценки
ЦФТ ответили на консультацию - при смене профиля штатными средствами пароль у пользователя всегда станет EXPIRED.

Эх, придется права alter user выпрашивать )
lexus
Профи
Межтопэнергобанк (вкл. Алемар)
Совладелец


Вступление в Клуб: 28.09.2007
СообщениеПт Авг 14, 2015 09:30    Ответить с цитатой
Полезность: Нет оценки
molokov пишет:
Привет, Алексей !
Без alter не как, если ни хочется чтобы пароль не протухал.
Попроси на время.
в 2006 году делал так :
<...>
update ibs.users set properties = prps
where username = cr.usrName;
commit;
<...> END LOOP;
end;

Саша, спасибо тебе за наводку!
Я, почему-то, думал, что вся users триггером закрыта на редактирование. А оказалось - properties спокойно апдейтить можно.
Так и сделал.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Администрирование доступа Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru