8

我们有一个使用 C# & Entity Framework 6 Code First 和 SQL Server 2014 开发的外部项目。它有一个网站和一个 wcf 服务。

现在,为了进行部署,项目承包商声明运行网站的 IIS APPOOL 用户需要 db_datareader、db_datawriter 和 db_ddladmin 的成员身份才能工作,实际上,如果不授予这些权限,它就无法工作。

我对此有一定的问题,因为不是 SQL-Guru 我觉得部署不应该需要 db_ddladmin 权限,而承包商说 EF Code First 完全正常并且没有发现问题。网上搜索似乎也表明这些权利可能存在问题(http://akawn.com/blog/2012/02/why-you-should-be-cautious-with-the-dbo_owner-role/)还会向我表明,EF 框架 Code First 真的需要这些权利会有点疯狂......

那么,EF Code First 需要 db_ddladmin 吗?部署的 Web 项目需要 db_ddladmin 的数据库访问权限是否有问题?

提前致谢!

4

1 回答 1

6

这确实是一个可能的痛点。实体框架确实假定您拥有迁移db_ddladmin权限。它在任何其他阶段都不需要此许可。

有几种方法可以处理这个问题。您可以授予权限,运行迁移,然后删除权限,或者您可以导出 SQL 脚本并针对您的服务器运行它,如下所示:( Update-Database -Script -SourceMigration:0从开始到当前状态的脚本)。任何未来的迁移部署都需要您采取相同的步骤,从服务器的当前迁移值开始,或者添加/删除权限。

于 2014-12-03T11:43:14.050 回答