entity-framework - Entity Framework 的最小权限原则

标签 entity-framework security least-privilege

我正在阅读有关我的安全性的内容,并有一个一般性问题。 在数据库中,应仅授予用户所需的属性,即选择、读取、删除等。

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

谢谢

最佳答案

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

显然,除非您使用存储过程进行插入/更新/删除,否则它需要对表(或 View )进行 CRUD 访问。它将需要在您使用的任何函数或存储过程上执行。

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

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

请告诉我这是否对您有帮助。 :)

关于entity-framework - Entity Framework 的最小权限原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077184/

相关文章:

c# - 我想在具有管理员权限的有限帐户中运行我的功能

c# - EF 代码优先通用实体和 EntityTypeConfiguration

android - http-equiv Content-Security-Policy 在浏览器中有效,但在安卓设备上无效 - IONIC

android - 服务器端安全

windows - 没有网络访问权限的虚拟服务帐户,如 NT AUTHORITY\LocalService

entity-framework - 使用 Entity Framework 代码最有效地处理创建、更新、删除

c# - 显示空类型的数据

c# - 具有自动完成功能的文本框

java - 使用 token (Java) 保护 REST Web 服务