Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 05-10-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Primero, si solo van a acceder a los datos a través de tu aplicación, no es necesario que asignes derechos a la base de datos. Incluso puede entrar todo el mundo con el usuario SYSDBA, pero una vez conectado y validado un usuario (un usuario de Interbase, o por una tabla propia de usuarios), tu aplicación puede restringir los accesos. Puesto que a cada usuario le permites (mediante las consultas que lanza la aplicación) consultar solo los datos que debe ver.

Aunque si los usuarios pueden acceder directamente a la base de datos, mediante ODBC u otro sistema que escapa al control de tu aplicación, entonces si que debes obligatoriamente asignar derechos en la base de datos.

En este caso yo probaría de crear vistas. Cada vista solo muestra un año o un grupo de años : select * from tabla where extract(year from fecha) in (2002,2003)

Entonces a los capturistas les das derechos sobre la vista que les corresponda y no sobre la tabla. De forma que trabajen esa vista para las consultas, inserciones y modificaciones.

De esta forma te aseguras que solo modifican registros del año que te interesa (són los unicos registros que ven)

Aunque no impides que puedan añadir un registro nuevo, y asignarlo a un año sobre el que no tienen derecho. La vista les permitirá hacerlo, aunque una vez entrado el registro, desaparecerá de la vista y no podrán modificarlo (pero estará dado de alta en la base de datos). Para evitarlo tienes que poner triggers en la vista. Un trigger BeforeInsert debe comprobar que la fecha entrada está en los años que corresponden, en caso contrario debe lanzar una excepción (para que no se inserte el registro). Igualmente un trigger BeforeEdit tiene que comprovar que no modifican un registro y le asignan la fecha a un año sobre el que no tendrían que tocar.

Espero que te sirva.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 05-10-2003 a las 00:48:00.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:40:23.


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