我们有一个外部项目,该项目使用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确实需要这些权利会有点发疯...
那么我需要db_ddladmin作为EF Code First吗?部署的Web项目需要db_ddladmin的数据库访问权限是否有问题?
提前致谢!
这确实是一个可能的痛点。实体框架确实假定您具有迁移db_ddladmin
权限。在任何其他阶段都不需要此许可。
有几种方法可以解决此问题。您可以授予权限,运行迁移,然后删除权限,也可以导出SQL脚本并在服务器上运行它,如下所示:(Update-Database -Script -SourceMigration:0
脚本从开始到当前状态)。从服务器的当前迁移值开始,或者添加/删除权限,任何将来的迁移部署都将要求您采取相同的步骤。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句