我们构建了一个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类来进行挂起的迁移。
答案 0 :(得分:0)
经过一番调查后,我发现该问题的解决方案是在master数据库中创建sql用户。
之前我们只在数据库中创建了登录名和相应的用户。 根据这个post SQL Azure不支持默认数据库,因此默认为master数据库我没有任何权利。
将用户添加到主数据库解决了"性能"问题。