Seguridad en campos de sql ?

Seguridad en campos de sql ?

Hola a todos.

Soy nuevo en este foro y me gustaría saber si existe alguna forma de que algun usuario de SQL no pudiese acceder a ciertos campos de una tabla determinada.

Para dar un ejemplo: estamos desarrollando una aplicación de contabilidad y necesitamos que solo algunos usuarios puedan acceder a ciertos campos y otros no aunque le hagan un select *

¿Es esto posible?

Desde ya muchas gracias a quien pueda responder.

Un abrazo desde España.


Comentarios

Hola knossos, como estás !!!

Te comento que sí es posible, que un usuario SQL, no acceda a a los datos de campos de una tabla determinada. Para ello te recomiendo que te manejes con vistas.
Una vista o view es una definición lógica de la tabla, donde, a nivel seguridad, puedes filtrar el acceso por estas. De que manera ? dando permisos por ej. de 'select' a una vista de una tabla determinada.
También te recomiendo que utilices roles para diferenciar funciones de usuarios y los asignes a estos roles, para, luego asignas los permisos sobre los roles .
Pasemos a un ej:
--CREAMOS LOGIN
--*************
CREATE LOGIN Knossos
WITH PASSWORD = 'Passw0rd69';
GO
--CREAMOS USUARIO EN BASE
--***********************
USE MiBase;
GO
CREATE USER Knossos FOR LOGIN Knossos;
GO
--CREAMOS ROL EN BASE
--***********************
EXEC sp_addrole 'GrupoRolsql1'
GO
--ASIGNAMOS USUARIO AL ROL
--************************
GO
EXEC sp_addrolemember 'GrupoRolsql1', 'Knossos'
GO

--CREAMOS TABLA EN BASE
--*********************
CREATE TABLE tabla1 AS (C1 varchar(77),c2 int, c3 cha(5),c4 smallint,c5 datetime)
GO
--CREAMOS TABLA VISTA Y FILTRAMOS POR CAMPOS
--******************************************
CREATE VIEW vista1 AS (SELECT c1,c2,c5)
GO
--ASIGNAMOS PRIVILEGIOS AL ROL DE BASE DE DATOS
--*********************************************
GRANT SELECT ON vista1 TO GrupoRolsql1
GO

Por último, también puedes segurizar el acceso para lectura y modificación a través de STORED PROCEDURES.

Saludos virtuales !!!

nalonso

Hola.

Bueno, muchísimas gracias por responder a mi pregunta.

El tema de las vistas es algo que estábamos pensando, asi que si tu me confirmas que es la mejor opción (y hasta te has tomado el tiempo de darme ejemplos y todo...) pues así lo haremos

Te agradezco muchisimo y te dejo un saludo desde España.