SQL中选择表达式的安全性

时间:2012-07-21 19:37:48

标签: sql sql-server-2008 security

考虑到您可以在查询中使用选择表达式

    select table1.ID, (select table2.salary, table1.id from table2 inner join...
from table1

并检索您不必在from语句中引用的数据,就企业DBMS中的安全性而言,这是如何防范的?表权限是否有效,以便您不允许对它们进行任何引用(因为这种情况它不在您的from语句中)

1 个答案:

答案 0 :(得分:2)

您可以强制执行列级权限。因此,如果请求来自选择列表,子查询,存在等等,则无关紧要:

DENY SELECT ON OBJECT::dbo.table2(salary) TO [user/role];

您还可以完全拒绝基础表上的选择,并创建一个仅显示您希望用户看到的列的视图。或者允许它们执行仅选择子集的存储过程。