PDA

Ver la Versión Completa : Necesito crear un permiso para escribir pero no para leer


federiconqn21
07-07-2006, 16:29:16
Hola a todos.Mi problema es el siguiente
tengo una base de datos Interbase,y hay una tabla en particular,a la que quiero crearle un permiso de escritura pero no de lectura.Concretamente es la tabla donde guardo el detalle de la recaudacion.entonces tengo empleados que tienen que escribir en ella,pero NO deben verla.Bien Lo que hice fue lo siguiente.
GRANT INSERT ON MI_TABLA TO "USUARIO1"
donde USUARIO1 es el nombre de usuario al que le doy el permiso.
Ahora bien,mi problema se presenta cuando este usuario quiere escribir en la tabla MI_TABLA,pues previamente debe ejecutar la operacion
MI_TABLA.Open
y para ejecutar la operacion de Open,el usuario debe tener el permiso SELECT.Per Con este permiso tambien puede ver los datos de MI_TABLA
que puedo hacer?
agradecere a quien me pueda acesorar en esto,pues es lo que me falta para terminar mi aplicacion.
Salu2

nemesio
07-07-2006, 17:59:04
Pero si lo haces en el sistema, puedes programar que cuando haga el Open, no se vea la información por pantalla. Ese open será como si no existiera para el usuario.

federiconqn21
07-07-2006, 18:00:47
hola. y como haria eso?
gracias por tu respuesta

Lepe
07-07-2006, 18:42:44
En realidad no tienes por qué usar un tabla.Open.

Puedes usar controles no data-aware, es decir, un simple Edit donde escribe las recaudaciones, despues en una consulta pones algo así:



query1.sql.Text := ' INSERT INTO MI_TABLA (CAMPO1, CAMPO2) '+
'VALUES (: pr1, : pr2);';
// pr1 significa "parametro 1" ;)
query1.paramsbyname('pr1').AsXXX := 'lo que sea';
query1.paramsbyname('pr2').AsXXX := 'lo que sea 2';
query1.ExecSql;


Saludos

aledieb
07-07-2006, 18:56:15
Por que no usas la instrucción de insert con un query sin abrir la tabla:

query1.sql.add('Insert into tutabla (campo1,campo2, campo3)');
query1.sql.add('values (valor1, valor2, valor3)');
query1.ExecSQL;

nemesio
07-07-2006, 19:13:47
A lo que me refiero es que si tu eres el programador, el programa lo conoces tu y si haces consultas o no, el usuario no se va a enterar. El usuario solo ve lo que tu mandas a mostrar por pantalla.