小编典典

ASp.NET MVC EF4 SQL表或字段级安全

sql

我对安全性有一个不寻常的要求,我正在寻找有关最佳做法或至少是非脆弱方法的建议。

场景:Intranet系统。有关许多相关实体的数据将被视为私有数据。这被称为系统的未发布部分。只有某些用户可以访问此数据。在某些阶段,用户可以从该数据中进行选择,标记一些记录并将其发布到“已发布”侧。已发布到发布端的数据将从未发布端删除。然后,大部分系统用户都可以处理发布端的记录。

我知道这听起来像是父记录中的布尔字段,将其标记为已发布或未发布,但是让我解释一下我们要替换的系统如何解决此问题-
这是我们需要模拟的安全级别。它是一个平面文件数据库(Dataflex),其未发布和已发布的数据位于单独的表中,位于单独的服务器驱动器上,并在不同的房间中备份到单独的磁带上,并由不同的人员进行物理访问。网络权限可确保已发布的用户无法获取未发布的数据。该软件还管理权限,但是如果出现错误,或者程序员犯了错误,他们仍然无法访问错误的数据。可能会泄露此数据的系统管理员已通过积极的安全审查。

因此,我正在寻找有关如何使用MVC,EF4和SQL实现此目标的体系结构的建议。在一个极端情况下,我用两个SQL数据库构建了两个系统,它们具有不同的权限:可能具有web.config中包含的差异,因此它实际上是相同的代码库。在规模的另一端,该表中的标志带有标记为拒绝访问的控制器方法。(那不好,因为如果程序员搞砸了,说一个搜索查询,并且它返回错误类别的数据,并且使它不为人所知,这很可能导致人类牺牲,狗和猫在一起生活…质量歇斯底里)

抱歉,冗长的描述。有关如何访问此内容的最佳做法或其他建议。


阅读 49

收藏
2021-04-28

共1个答案

小编典典

不是特定于MVC / EF的答案,而是TechNet上有一篇较旧的文章(适用于SQL Server 2005),它回答了很多问题,可能很有用:

“使用SQL Server 2005在分类数据库中实现行级和单元级安全性”

在Technet上可用。相同的论文也可以作为Word文档下载

2021-04-28