【发布时间】:2011-04-29 06:22:32
【问题描述】:
我有一个用户 VIEW,我们称它为 [MIKE].Table,它会进行过滤选择
SELECT * FROM TABLE WHERE TL_FILTERKEY in (1,2,3)
所以,如果 Mike 连接到服务器并执行
"SELECT * FROM TABLE"
他只会看到表格中的部分数据。
还有一个具有 dbo 权限的过程,并允许 Mike 执行为
CREATE PROCEDURE tbSelect
as
SELECT * FROM TABLE
如果 Mike 执行 exec tbSelect,他将看到 Table 中的所有行,但未过滤。
如何编写程序以便从用户视图中选择数据(过滤的行)?
我尝试重新创建过程 'WITH EXECUTE AS 'Mike'' 和 'WITH EXECUTE AS CALLER',但是返回了所有行。
【问题讨论】:
标签: sql sql-server view procedure