考虑拒绝用户访问金融机密表:
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
权限?
编辑:酱:
答案 0 :(得分:3)
这是宣传的
它被称为“ownership chaining”
如果您不希望有人看到列/表,请不要在view / function / stored proc中使用它。或者添加逻辑/联接以根据您使用的任何模型检查权限。
很久以来,它一直在SQL Server和Sybase中使用。
答案 1 :(得分:1)
这首首先是意图的一部分吗?当用户没有对基础表具有选择权限时,能够从表中看到某些特定信息的可见性吗?
这里的问题听起来是有问题的用户首先有权创建视图。
例如,假设您想要公开该表中的非机密信息;你可以通过一个视图将结果限制为你想要看到的内容。