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

ASP.NET用户从sql server浏览选定/受限制的原始数据,asp.net,sql-server,custom-view,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

在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\u RawData\uu[TableName]([UserName])
替换。 (出于安全原因,此类调用可以由sql用户执行,该用户的唯一权限是对这些函数的SELECT权限。)


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

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

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