Ver la Versión Completa : Seguridad en las tablas
santi33a
12-12-2005, 13:01:03
Hola a todos:
Les escribo para ver si alguien me da una idea de como soluionar el problema que a continuación les presento:
Simplificando un poco tengo una tabla parecida a esta en SQL Server 2000
Nombre: Documentos
Campo1:idDoc int
Campo2:idEmp int
Campo3:imp money
Ahora quien puede acceder a esta tabla lo controlo por los permisos en el servirdor de SQL, sin embargo tambien me interesaria que ciertos usuarios puedieran acceder en dependencia del valor de idEmp por ejemplo:
Si idEmp = 1 entonces G_Usuarios1 sean los que pueden acceder
cualquier sugerencia siempre es bienvenida
Santiago
Casimiro Notevi
12-12-2005, 13:15:13
Según me ha parecido entender, porque no está muy claro :(
En la tabla de usuarios debes tener un campo que sea algo así como "permiso", si es '1' es que tiene, si es '0' es que no tiene permisos.
Cuando vas a acceder a esa tabla Documentos, si el usuario tiene "permiso=1" le dejas entrar, que no... pues no.
Creo que es eso a lo que te refieres
santi33a
12-12-2005, 17:25:22
En realidad no tengo una tabla que se llame usuarios, los usuarios los importo de Windows y a estos les doy permisos a
SELECT UPDATE ....
en las tablas, pero lo que necesito es en dependencia del usuario y del valor de un campo de la tabla les dejo
SELECT UPDATE .... o EXEC
santi33a
14-12-2005, 21:36:24
yo he pensado en dos formas de hacerlo pero a las dos le encuentro dificultades
1 Forma
Creo una tabla con la sgte extructura
create table EmpUs (idEmp int, Usuario varchar(30))
y el administrador del servidor SQL la llena por ejemplo
idEmp Usuario
1 'PEPE'
1 'JUAN'
2 'RAUL'
3 'PEDRO'
ahora en la aplicación cliente yo me conecto en BD atraves de Store Proecedure donde le paso como parametro entre otras cosas el idemp
Create Procedure pDoc @idEmp int as
if exists(select idEmp from EmpUs where idEmp = @idEmp and Usuario = user)
select * From Documentos where idEmp = @idEmp
else
raiserror('usuario no autorizado',16,1)
pero de esta forma pudiera suceder que un usuario de otra idEmp instale en su PC alguna herramienta cliente donde pudiera mandar una consulta como
select * from Documentos
y tener datos de otras empresas
2 Forma
Crear tantas BD como empresas y en la aplicación cliente pregunto por la Empresa y entonces se conecte a ella si tiene permiso el usuario por supuesto, pero entonces tendria repetido todos los Store Procedure y Funciones, ademas si en un momento determinado existen dos clientes usando la aplición de Empresas diferentes tendria en memoria compilaciones de las mismas consultas (me parece), ademas de repetirce todas las tablas y objetos del sistema que crea cada BD
Por lo que agradeceria cualquier sugerencia o idea
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.