Entity Framework 的最小特权原则

Principle of Least Privilege with Entity Framework

我正在阅读我的安全信息并有一个一般性问题。 在数据库中,用户应该只被授予他们需要的属性,即 select、读取、删除等。

当使用 Entity Framework 作为 ORM 时,我该如何实现? 实体没有权限的概念。

谢谢

为 Entity Framework 实现最小权限的方式是使用数据库登录名从 EF 连接到数据库(通常这将在连接字符串中设置)。根据您使用 EF 的方式,应该只允许该登录执行某些操作。

显然它需要对表(或视图)进行 CRUD 访问,除非您使用 inserts/updates/deletes 的存储过程。它需要在您使用的任何函数或存储过程上执行。

此外,如果您打算使用 Code First 迁移,它基本上必须拥有所有权,因为它将是 adding/removing 表和列。

现在,这就是您为 EF 实现最小权限的方式,这可能不是您想要的。如果你想知道如何为你的 Users 实现它,那么这将是一个身份验证和授权的问题,这将超出数据库的范围并且会更多您的应用程序的问题。 (我想从技术上讲,您可以使用用户必须使用数据库登录名登录的方法,该方法将用于配置 EF 与数据库的连接,但我认为这很容易出错,尤其是在网络应用程序。)

如果这对您有帮助,请告诉我。 :)