我正在使用entity framework的代码优先的方法。 当我第一次运行应用程序时,它会尝试创build与我的MVC模型匹配的数据库。
但是,我认为它没有创build它的权限。 我得到以下错误:
CREATE DATABASE权限在数据库“master”中被拒绝。
什么用户试图访问SqlServer,我如何添加它的权限让它工作?
这是我使用的连接string(应该是正确的…)
<add name="ContextDb" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=ContextDb" providerName="System.Data.SqlClient"/>
干杯
一般提示:不要这样做。
数据库创build – 在非常简单的场景之外 – 是行政行为,不应该由用户发生。 事实上,你不应该期望能够做任何DDL – 没有表创buildetcl。 没有。
初学者的基本安全101说,数据库的创build和维护不是由非信任的用户来完成的,而是由pipe理员完成的。
这就是为什么您通常在设置和/或您提供的pipe理员可以运行的工具中执行此操作的原因。
只有非常简单的情况才能逃脱,只有当地的快递数据库。 但即使如此,你相信用户很多 – 我真的希望这不是高层次的东西。 在SQL Express方面没有任何重新configuration,这意味着用户必须是pipe理员;)
在连接string中使用“集成安全性= SSPI”时,意味着将使用运行可执行文件的用户的Windows凭据来build立与SQL的连接。 网站connectionstrings.com是build立连接string的一个很好的参考。