Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error de Seguridad (https://www.clubdelphi.com/foros/showthread.php?t=93513)

Gregorio Cíber 22-10-2018 19:00:44

Error de Seguridad
 
Hola amigos.

Tengo un problema desde la migración a FB3.0 que antes no se me presentaba. Intentaré ser conciso y claro en la explicación.
La aplicación va creando usuarios a medida que se necesitan a partir del nombre de puesto desde el que se conecta. Al nuevo usuario se le asigna un determinado rol, siempre el mismo, que tiene permiso de selección, modificación, eliminación, borrado y referencia en todas las tabla y de ejecución en los procedimientos almacenados. Esto funciona bien. El problema se presenta cuando creo una nueva tabla, que a pesar de tener los permisos mencioandos anteriormente para el usuario que se conecta, no permite que se modifique emitiendo un error de seguridad.

Alguna idea para solucionar este problema.

Gracias.

Casimiro Notevi 22-10-2018 19:07:24

¿Y qué dice ese error de seguridad?

Gregorio Cíber 22-10-2018 19:36:09

Gracias por contestar tan rápido, Casimiro Notevi.
El error lo detecta el componente de TpFibErrorHandle de FIBPlus.

Código Delphi [-]
procedure TDM.err_GeneralFIBErrorEvent(Sender: TObject;   ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean); 
begin   
  //Caso de perder conexión con el servidor   
  if KindIBError = keLostConnect then  
  begin     
    //     
    //   
  end;    
  if KindIBError = keUniqueViolation then   
  begin     
    //     
    //   
  end;    
  if KindIBError = keSecurity then        <--- Este es el error que salta.   
  begin     
    Mensaje('Error de seguridad al abrir tablas de la BD.');     
    //     
    //   
  end; 
end;


Es lo que te puedo decir. Sé que no es mucho, pero no tengo más información.

Gracias.

Gregorio Cíber 22-10-2018 19:38:23

Lo siento, en la vista previa el código delphi sale perfecto. Sin enbargo al enviar es un desasatre.

roman 22-10-2018 19:43:32

Código con formato correcto
 
Código Delphi [-]
procedure TDM.err_GeneralFIBErrorEvent(Sender: TObject; ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean);
begin
  // Caso de perder conexión con el servido
  if KindIBError = keLostConnect then
  begin
    // //
  end;

  if KindIBError = keUniqueViolation then
  begin
    // //
  end;

  if KindIBError = keSecurity then <--- Este es el error que salta.
  begin
    Mensaje('Error de seguridad al abrir tablas de la BD.');
    // //
  end;
end;

// Saludos

movorack 22-10-2018 19:56:16

. .
Cita:

Empezado por roman (Mensaje 529164)
Código Delphi [-]
procedure TDM.err_GeneralFIBErrorEvent(Sender: TObject; ErrorValue: EFIBError; KindIBError: TKindIBError; var DoRaise: Boolean);
begin
  // Caso de perder conexión con el servido
  if KindIBError = keLostConnect then
  begin
    // //
  end;

  if KindIBError = keUniqueViolation then
  begin
    // //
  end;

  if KindIBError = keSecurity then <--- Este es el error que salta.
  begin
          //Aquí puedes validar el mensaje que arroja el sistema. en lugar de solo sacar tu mensaje.
    Mensaje('Error de seguridad al abrir tablas de la BD.');
    // //
  end;
end;

// Saludos


Gregorio Cíber 22-10-2018 20:09:58

Gracias, Miguel A. Valero.
Estaba obcecado mirando tablas y procedimientos, y no reparé en hacer lo mismo con los generadores. Ahí estaba el problema.
Gracias a todos por ayudarme.


La franja horaria es GMT +2. Ahora son las 11:48:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi