对于角色db_denycustomer
,我只希望customer表的列代码是可选择的,而其他都不是。所以我这样做:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
...而且效果很好。凉!但是,为什么呢?
我在相关文章中读到的是该权限栈,但DENY
具有优先权。相反,在我的情况下,似乎最后一个权限“查询”优先。果然,如果我以相反的顺序执行它们,后者DENY
也会隐藏代码列。
您能详细说明一下吗?
我还向测试的用户提供了默认值db_datawriter
和db_datareader
角色。