Para el rol db_denycustomer
, solo quiero que el código de columna de la tabla del cliente sea SELECCIONABLE, y ninguno de los otros. Entonces hice esto:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
... y funciona bien. ¡Frio! Pero, ¿por qué ?
Lo que he leído en artículos relacionados es que los permisos se acumulan, pero DENY
tienen prioridad. Por el contrario, en mi caso, parece que la última "consulta" de permisos tuvo prioridad. Efectivamente, si los ejecuto en orden inverso, este último también DENY
oculta la columna de código.
¿Podría por favor elaborar sobre esto?
También he incluido los valores predeterminados db_datawriter
y los db_datareader
roles para el usuario con el que probé.