【发布时间】:2013-12-15 12:30:51
【问题描述】:
我的问题再次更具体: 如何通过视图修改数据而不必对表授予 SELECT-Permissions?
我正在为我工作的公司设计和开发一个新数据库。 业务规则说,用户只能访问表中的特定行。 所以我使用视图来检查用户的权限并只返回那些用户有权访问的记录。
到目前为止,上帝。 但是,我还必须使用 INSTEAD-of-Triggers 检查 INSERT 和 UPDATE 和 DELETE 的权限。因为用户可以选择的行可能不是那些,他可以修改。
我的问题是: 当我有视图并授予 SELECT、INSERT、UPDATE 和 DELETE 权限时,它不起作用。当我插入此视图时,SQL Server 需要在基表中插入权限。那不会有问题。但是当我通过视图更新或删除行时,SQL Server 需要在基表上授予 SELECT 和 UPDATE/DELETE 权限。 我不想给桌子上的 SELECT 权限。
谢谢 克里斯
【问题讨论】:
-
为了安全而使用触发器比在冬天入侵俄罗斯更糟糕。我会回到绘图板上。
-
谢谢。这是通过视图更新数据的常见做法吗?当我必须使用 EXECUTE AS 时,我必须将登录名保密。因为有人知道在表级别具有权限的 LOGIN-Name,所以他可以在 SQL Server 中使用自己的帐户登录并使用 EXECUTE AS。