SQL Server - 是否需要对表的权限?

时间:2013-11-29 10:30:03

标签: sql-server permissions

我的问题再次更具体: 如何通过视图修改数据,而不必在表上授予SELECT-Permissions?

我正在为我工​​作的公司设计和开发一个新的数据库。 业务规则说,允许用户仅访问表中的特定行。 所以我使用视图检查用户的权限,只返回那些用户有权访问的记录。

到目前为止,上帝。 但是,我必须使用INSTEAD-of-Triggers检查INSERT和UPDATE以及DELETE的权限。因为用户可以选择的行可能不是那些,他可以修改。

我的问题是: 当我有一个视图并授予SELECT,INSERT,UPDATE和DELETE权限时,它不起作用。当我插入到此视图中时,SQL Server希望在基表上执行INSERT-Permission。那不是问题。但是当我通过视图更新或删除行时,SQL Server需要在基表上授予SELECT和UPDATE / DELETE权限。 我不想在表上给出SELECT权限。

由于 克里斯

1 个答案:

答案 0 :(得分:1)

我在想:

1 /通过在其定义中添加如下条件来限制VIEW行:

WHERE UserName = SUSER_SNAME()
or
WHERE UserName = CURRENT_USER()

2 /在相关视图中使用INSTEAD OF触发器。

P.S。实际上,不允许使用CREEC VIEW WITH EXECUTE。感谢您的留言。