![]()
madecapital.com
thefinancialtrading.com
grandesbodas.com
mundoface.com
goodtradings.com
good-trades.com
lasjugueterias.com
takenprofit.com
takesprofit.com
thetradingexperience.com
sqlenlinea.com
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.