1

在我们的数据库中,所有表都链接回一个表。这个表有一个位列来限制记录是否显示。目前,记录在网站的代码端进行过滤。

有什么方法可以设置权限,以便用户A 永远不会在数据库中看到该公共位列设置为 true 的任何记录?

我们使用的是 SQL Server 2008。

或者,如果您有任何想法如何在那里实现它,我们也在 .net 4(在 c# 中)中使用实体框架 4.0?

感谢您的反馈意见。

4

2 回答 2

0

根据这篇优秀的 TechNet 文章,如果您相应地构建数据库,使用视图或存储过程来限制当前用户的结果,那么 SQL 服务器确实可以实现行级安全性。据我所知,SQL Server 没有内置的行级锁定功能。

于 2011-02-24T15:23:08.470 回答
0

您可以在表格顶部定义一个视图,该视图仅显示“活动”列设置为 1(真)的那些行。

然后,您可以从该组用户撤消SELECT对基础表的权限,但反过来授予他们SELECT对您创建的新视图的权限。

于 2011-02-24T15:23:48.593 回答