2

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

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

谢谢

4

1 回答 1

2

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

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

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

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

让我知道这是否对您有所帮助。:)

于 2017-09-06T17:05:45.183 回答