我对此比较陌生(数据库,一般安全问题),所以我可能过于复杂化了。我有一个包含学生成绩的数据库。我想设计一个视图,在其中限制对每个学生的访问。我可以想到 3 种方法:通过在 master 数据库中授予权限,使用访问控制列表可能在 AD 中创建组并通过分配角色,尽管这似乎需要为每个学生分配一个角色,这似乎工作量太大。有人可以指导我吗?谢谢。
我对此比较陌生(数据库,一般安全问题),所以我可能过于复杂化了。我有一个包含学生成绩的数据库。我想设计一个视图,在其中限制对每个学生的访问。我可以想到 3 种方法:通过在 master 数据库中授予权限,使用访问控制列表可能在 AD 中创建组并通过分配角色,尽管这似乎需要为每个学生分配一个角色,这似乎工作量太大。有人可以指导我吗?谢谢。
如果您希望每个学生只能访问保护该学生的行,您可以通过在学生表中添加一个字段来实现这一点,您将在其中为每个学生存储他的 AD 帐户,然后创建一个将加入所有学生的视图需要包括你的学生表并使用这样的过滤器
所以每个学生只能访问他的行。这里的 USER 是一个内置的 T-SQL 函数,它将返回学生的 AD 帐户。当然,您应该使用 Windows 身份验证为您的学生创建登录名;您不需要单独映射它们,添加一个窗口组 yourDom\STUDENTS 就足够了,其中每个学生都是 yourDom\STUDENTS 的成员