Marcelo Colonna Rosman
unread,May 5, 2020, 9:45:38 AM5/5/20You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hi,
I am trying to change the SYSDBA masterkey password to a new one.
I am using IBSecurityService.
The database file has EUA activated and is encrypted.
I am using InterBase ToGo 2020 (ibtogo.dll) licensed.
The connection to the database is working fine.
The problem occurs only when I try to activate the IBSecuritySevice at run-time.
I have set the following properties of
IBSecurityService component at design-time:
-------------------------------------------
LoginPrompt = False
Protocol = Local
ServerName = ''
ServerType = 'IBEmbedded'
SystemUserName = 'SYSDBA'
UserDatabase = 'C:\Data\DBFile.ib'
UserName = 'SYSDBA'
Password = 'NewPassword'
Params:
user-Name=SYSDBA
password=masterkey
-------------------------------------------
When I set the Active property to True the IBSecurityService component is activated and no error message appears.
But when I set the same properties at run-time and then set the Active property of IBSecurityService to True I get the following EIBInterBaseError message: 'feature is not supported'.
Here is the code I am using to modify the SYSDBA masterkey password to a new one:
SEPassword is the "System Encryption Password".
The Database is encrypted .
procedure ModifySYSDBAPassword(OldPassWord, NewPassword, SEPassword, UserDatabase : String);
var
ibSecServ : TIBSecurityService;
begin
ibSecServ := TIBSecurityService.Create(nil);
try
ibSecServ.LoginPrompt := False;
ibSecServ.Params.Clear;
ibSecServ.Params.Add('user_name=SYSDBA');
ibSecServ.Params.Add('password=' + OldPassword);
ibSecServ.Params.Add('sys_encrypt_password=' + SEPassword);
ibSecServ.ServerType := cIBEmbedded;
ibSecServ.SecurityAction := ActionModifyUser;
ibSecServ.UserDatabase := UserDatabase;
ibSecServ.ServerName := EmptyStr;
ibSecServ.Protocol := Local;
ibSecServ.UserName := 'SYSDBA';
ibSecServ.Password := NewPassword;
ibSecServ.SystemUserName := 'SYSDBA';
ibSecServ.Active := True; // Here I get the error message:
// 'feature is not supported'
ibSecServ.ModifyUser;
finally
ibSecServ.Active := False;
if (ibSecServ <> nil) then
ibSecServ.Free;
end;
end;
Can anyone hep me?
If anyone could give me another solution to change the SYSDBA password it would be appreciated too.
Thank you very much.