拒绝读取权限可以用视图来规避吗?

时间:2010-11-05 14:53:38

标签: security sql-server-2000

考虑拒绝用户访问金融机密表:

SELECT * FROM Transactions
SELECT permission denied on object 'Transactions'

没问题:

CREATE VIEW dbo.Transactions2 AS SELECT * FROM Transactions
Command(s) completed succesfully.

SELECT * FROM Transactions2
(84,387,982 row(s) affected)

用户是否应该通过对表进行别名来绕过表上的deny权限?

编辑:酱: alt text

2 个答案:

答案 0 :(得分:3)

这是宣传的

它被称为“ownership chaining

  • dbo拥有table和view / function / stored proc
  • view / function / stored proc references table
  • 表权限根本不检查(对于GRANT,DENY,等等)

如果您不希望有人看到列/表,请不要在view / function / stored proc中使用它。或者添加逻辑/联接以根据您使用的任何模型检查权限。

以前的答案:onetwo

很久以来,它一直在SQL Server和Sybase中使用。

答案 1 :(得分:1)

这首首先是意图的一部分吗?当用户没有对基础表具有选择权限时,能够从表中看到某些特定信息的可见性吗?

这里的问题听起来是有问题的用户首先有权创建视图。

例如,假设您想要公开该表中的非机密信息;你可以通过一个视图将结果限制为你想要看到的内容。