【发布时间】:2020-12-08 17:39:11
【问题描述】:
我有一个学校管理系统,我们管理 100 所学校。我们有帮助这些学校的管理员。我正在尝试为不同的管理员设置安全性。
For example:
Administrator 1 can have access to all 100 schools
Administrator 2 can only access 5 schools
Administrator 3 can only access 15 different schools
.
.
.
so on
我正在尝试为管理员设置安全框架。最简单的方法是创建一个 AdminToSchool 数据库表,其中每个管理员将在他们有权访问的每所学校中占一行。
可能的解决方案
Admin Id School Id AllowEdit AllowDelete
1 100S 1 1
1 101S 1 1
1 102S 1 1
1 103S 1 1
2 103S 1 1
.
.
.
我正在尝试考虑是否有更好的方法来执行此操作,并使用一些基于角色的安全性或任何其他可能的方式,以便易于管理,而不是在我们添加或删除访问权限时不断向表中添加行。
处理此问题的最佳方法是什么?
【问题讨论】:
-
虽然您可以...您可能不想“推出自己的”安全性。大多数数据库产品都有一个您应该依赖的安全层。什么是“最好”的答案很大程度上取决于几个问题。您使用的是哪种数据库产品?是 MySQL 吗? SQL 服务器?您是否有现有的身份管理平台来处理存储用户名和密码,例如 Active Directory?
-
从您的用户名中,我们或许能够推断出您在 Microsoft 生态系统中并使用 SQL Server。有关基于角色的访问控制的入门知识,请阅读 Phil Factor 的Schema-Based Access Control。
标签: sql database algorithm security database-design