MS SQL 2008 R2 中的单行用户安全性

MS SQL 2008 R2 中的单行用户安全性

我有一个关于 SQL Server 2008R2 的问题,关于以奇怪的方式创建单行。

情况:我有一个学生记录数据库,其中一天可能有大约 100 名学生在处理。他们输入了大量 PII。不幸的是,他们经常需要保存数据,然后稍后再回来更新或完成注册,因为他们需要一条或另一条信息。此时,他们需要能够返回到他们最初未完成的条目并添加他们需要添加的任何信息。这可能发生在课程开始的第一周的任何时候,具体取决于他们的日程安排以及他们在检索完成数据库所需的任何信息时遇到的困难。

问题:我有许多小组需要能够读取和修改学生信息。各种工作人员需要能够提取其中一些信息,课程经理通常需要能够读取这些信息以编制统计报告,而讲师需要一直访问这些信息以添加成绩等。学生可能需要在课程后期访问这些信息以更新信息,但这并不常见。我的主要问题是我需要学生仅对他们的行具有读写权限,而讲师等需要能够读写所有行。通过 AD 集成,一切都正常,除了一个学生可能打开另一个学生的“文件”(行)并查看他们的个人信息。

我如何才能将一行锁定到一名学生,同时仍允许管理人员和讲师读取并可能写入?我是一个单人秀,所以我需要尽可能地自动化,而 SQL 不是我的强项。我考虑过使用证书(我们有自己的内部 CA)和/或 AD 用户 ID,但我不确定如何实现它,或者这是否真的是最好的选择。

答案1

除了 dartonw 的评论之外,您还可以考虑仅使用存储过程和视图进行数据库访问,而不是原始访问。您可以为特定用户设置 SP 和视图的权限。然后,您可以使用特定的视图和 SP 来获取不同的结果集。

然而,我同意其他评论者的观点,即该 SQL Server 版本的行级安全性应该在应用程序级别而不是数据库级别处理。

相关内容