No dejar borrar registros de una tabla.

Tengo un pequeño problema que no se como solucionar.
En la empresa tenemos una aplicación que funciona sobre SQL Server 6.5, y quiero bloquear de alguna manera que la aplicación me borre registros de una tabla. He intentado poner un trigger en el delete de la tabla con un raiserror, con nivel de gravedad 17, con el mensaje de que no se pueden borrar registros. El mensaje me aparece en pantalla, pero me sigue borrando los registros de la tabla.
¿Se puede hacer de alguna manera?

1 respuesta

Respuesta
1
¿No podes modificar los permisos del usuario para que no pueda borrar registros?
En teoria, cada aplicacion tendria que conectarse al sql con un usuario distinto. Cada usuario (y por ende, cada aplicacion) tiene distintos permisos en las tablas.
Suerte, Nicolas
Eso ya lo he intentado, pero la aplicación lo borra como super usuario.
Es el típico programa de cabeceras-lineas, que cuando borras la cabecera, el programa por dentro elimina las lineas. He conseguido poniendo la misma instrucción raiserror en la cabecera, que al menos la cabecera devuelva el error y no borre, pero no se porque, con las líneas no funciona.
Gracias.
Fernando Olid
justamente .. es lo que te digo
No uses un super usuario para conectarte desde esa aplicación.
Mira ... tenemos la tabla "usuarios".
La aplicación "marketing" se conecta al sql con el usuario de sql llamado "usuariomarketing" que tiene permiso de select en la tabla "usuarios".
La aplicación "comercial" se conecta al sql con el usuario usuarioComercial el cual tiene permiso de select y de insert en la tabla "usuarios"
La aplicación "Sistemas" se conecta al sql con el usuario "usuarioSistemas" que tiene permisos totales en las tablas.
La idea es que cada aplicación tenga permisos específicos para cada tabla o base. No es recomendable usar un super usuario para conectarse a la base desde una aplicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas