EF Code First Migration,在SQL Azure中不使用管理员帐户时出现性能问题

时间:2017-04-10 12:29:25

标签: entity-framework azure-sql-database ef-migrations

我们构建了一个Web工具(C#WebAPI)来管理使用Entity Framework Code First Migrations迁移SQL Azure数据库。

默认情况下,当我们创建数据库时,我们还会为每个数据库创建登录和用户帐户。

这些帐户获得db_datareader和db_datawriter权限。

我们使用网络应用中的这些帐户连接到数据库以获取当前迁移,如果有任何待处理的迁移,请应用它们。

出于某种原因,此操作每次大约需要10秒钟(不应用任何更新)。

如果我们使用管理员帐户(在Azure中设置sql server时关联),则时间会减少到不到一秒。

我得出的结论是,必须有一些允许我们降低性能的许可事项。

我已经添加了db_ddladmin角色解释here但没有任何成功。

我们在Entity Framework Migrations中使用DbMigrator类来进行挂起的迁移。

1 个答案:

答案 0 :(得分:0)

经过一番调查后,我发现该问题的解决方案是在master数据库中创建sql用户。

之前我们只在数据库中创建了登录名和相应的用户。 根据这个post SQL Azure不支持默认数据库,因此默认为master数据库我没有任何权利。

将用户添加到主数据库解决了"性能"问题。