Не работает смена пароля через IBSecurity
Добавлено: 28 фев 2008, 21:42
Подскажите, почему не получается сменить пароль программно ?
Ход такой
1) Отключаю всех пользователей от базы
2) Ввожу старый пароль, новый и подтверждение
3) Коннекчусь к базе со старым паролем, если все ок - делаю дисконнект и подключаюсь SYSDBA
4) Прописываю новый пароль для пользователя в параметрах
5) Через IBSecurity вызываю ModifyUser
6) Отрабатывает, но пароль не меняет
В чем может быть проблема ?
коннектов "лишних" нет
type
TUser = class
Name: string;
Pass: string;
NewPass: string;
Path: string;
BaseName: string;
Right: boolean;
end;
function TData.ChangePass(param : TUser): boolean;
begin
try
CloseConnections;
OpenConnections(SuperUser);
// IBSecurityService.ActiveUser
IBSecurityService.UserName := param.Name;
IBSecurityService.Password := param.Pass;
IBSecurityService.FirstName := '';
IBSecurityService.MiddleName := '';
IBSecurityService.LastName := '';
try
IBSecurityService.Active := True;
IBSecurityService.ModifyUser;
Result := True;
except
Result := False;
end ;
IBSecurityService.Active := False;
except
Result := False;
end;
CloseConnections;
end;
Ход такой
1) Отключаю всех пользователей от базы
2) Ввожу старый пароль, новый и подтверждение
3) Коннекчусь к базе со старым паролем, если все ок - делаю дисконнект и подключаюсь SYSDBA
4) Прописываю новый пароль для пользователя в параметрах
5) Через IBSecurity вызываю ModifyUser
6) Отрабатывает, но пароль не меняет
В чем может быть проблема ?
коннектов "лишних" нет
type
TUser = class
Name: string;
Pass: string;
NewPass: string;
Path: string;
BaseName: string;
Right: boolean;
end;
function TData.ChangePass(param : TUser): boolean;
begin
try
CloseConnections;
OpenConnections(SuperUser);
// IBSecurityService.ActiveUser
IBSecurityService.UserName := param.Name;
IBSecurityService.Password := param.Pass;
IBSecurityService.FirstName := '';
IBSecurityService.MiddleName := '';
IBSecurityService.LastName := '';
try
IBSecurityService.Active := True;
IBSecurityService.ModifyUser;
Result := True;
except
Result := False;
end ;
IBSecurityService.Active := False;
except
Result := False;
end;
CloseConnections;
end;