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

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

情况:我有一个学生logging数据库,在这个数据库中有大约100名学生可能在某一天处理中。 他们input了大量的PII。 不幸的是,他们经常需要保存数据,稍后再回来更新或完成注册,因为他们需要一个或另一个信息。 此时,他们需要能够回到原来不完整的条目,并添加他们需要添加的任何信息。 这可能会在课程的第一个星期的任何时候发生,具体取决于他们的日程安排,以及他们在检索完成数据库所需的任何信息方面的困难。

问题:我有一些需要能够阅读和修改学生信息的人群。 不同的工作人员需要能够获取这些信息,课程pipe理人员通常需要能够阅读这些信息以编制统计报告,教员需要随时访问它以添加成绩等。学生可能需要访问它后来在更新信息的过程中,但这不是典型的。 我的主要问题是,我只需要学生读写他们的行,而导师等。 需要能够读取和写入所有的行。 通过AD集成,除了一个学生可能打开另一个学生的“文件”(行)并查看他们的个人信息之外,所有东西都可以工作。

我怎样才能locking一行到一个学生,同时仍然允许行政人员和导师阅读并可能写入访问? 我是一个男人秀,所以我需要尽可能地自动化,而SQL不是我的强项。 我考虑使用证书(我们有我们自己的内部CA)和/或AD用户ID,但我不知道如何实现它,或者如果这真的是最好的select。

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

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