SQL Server 2005,权限验证

时间:2011-08-03 08:39:34

标签: c# sql-server-2005 rights-management

我正在使用数据库SQL Server 2005在C#中编写应用程序。它使用Windows身份验证。

问题是用户应该根据存储在数据库中的信息获取权限。

F.e。我在我的数据库中存储有关不同项目的信息。每个项目都有一个领导者,每个项目属于某个领域,每个领域都有管理员。 因此,启动某个项目的人应该只能修改该项目。 管理员也可以启动项目,但仍然无法修改其他项目。 这适用于不同的选择,更新和插入案例。

我不喜欢在存储过程调用中检查权限的想法,因为如果某些类工作者的权限发生更改,则应重写所有这些权限。

在我的情况下控制访问的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您无法解决权限基于数据这一事实,因此您需要在操作之前检查数据。也就是说,在某处的代码中。

  • 在“创建”过程/视图中,您需要检查当前用户是否为admin
  • 更新过程/视图中,您需要检查用户是否与列匹配

这是简化的,但这是你必须要做的。

对于存储过程,您可以调用另一个存储过程,该过程将检查权限以集中所有检查,以便于维护。