ASP.NET用户从sql-server浏览选定/受限制的原始数据

时间:2009-11-10 08:04:25

标签: asp.net sql-server custom-view

在ASP.NET WebForms应用程序中,我想允许最终用户浏览sql-server数据库中的选定原始数据。

但是,我想限制用户只能根据用户名查看部分数据的访问权限。

我不确定如何以用户可以理解的方式执行此操作,因为用户不一定知道SQL。

我有什么选择?


作为此基础,我考虑过为每个表创建一个sql函数。该函数应该返回允许用户查看的数据,例如,

CREATE FUNCTION ufn_RawData_Employee(@username nvarchar(256))
RETURNS TABLE
AS ( SELECT * FROM Employee 
  WHERE [@username is allowed to view the given Employee] )

在网页中,最终用户可能会输入类似SQL的语句,如

SELECT Name, HireDate FROM ((Employee))

然后在调用数据库之前,(([TableName]))可以被ufn_RawData_[TableName]([UserName])替换。 (出于安全原因,此类调用可以由sql用户执行,该用户的权限是对这些函数的SELECT权限。)

但是,对于最终用户来说,这种方法可能太难了。我想知道最终用户是否有更简单/用户友好的解决方案来浏览选定的原始数据?

1 个答案:

答案 0 :(得分:1)

如果您只显示来自一个表或一个视图(可能更有用)的用户数据,那么您可以将该视图的名称存储在表中并使用函数检索它。然后,您可以在页面中显示数据,并确保标准选择脚本在必要时具有内置搜索功能。

如果用户只从一个表或视图获取数据,则无需编写SQL。如果您需要提供多个潜在的表/视图,那么让他们从下拉列表中进行选择,但允许他们编写自己的SQL查询并不值得。