小编Eri*_*ine的帖子

为什么我无法查看 Web 应用程序创建的 SQL Server 数据库?

我有一个 ASP.NET MVC Web 应用程序部署到 Windows Server 2012 机器上的 IIS。当应用程序第一次启动时,它会在必要时通过实体框架创建它需要的数据库和表。这一切正常,现在我想通过 SQL Server Management Studio 对数据库进行一些管理。但是,当我打开该工具时,我只能看到系统数据库。如果我从连接字符串中删除“User Instance=true”并让应用程序再次创建数据库,我就可以看到数据库。

当User Instance=true 在连接字符串中时,为什么我无法查看Web 应用程序创建的数据库? 如果我使用具有所有角色的帐户通过 Management Studio 查看服务器实例,我希望它能够查看任何和所有数据库。

一些可能有帮助的细节:

该应用程序在 Web.config 中使用以下连接字符串:

<add name="DefaultConnection" connectionString="Data Source=.\SqlExpress; 
  Initial Catalog=Foo.Dashboard;  Integrated Security=SSPI;User Instance=true" 
  providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

在IIS中,应用程序池设置为与身份运行LocalServiceLoad User Profile设置True。在 SQL Server Express 上,我们为该Local Service帐户添加了一个登录名并为其分配了dbcreator角色。当应用程序启动时,它就能够创建数据库和表,一切似乎都在运行。

然后我使用远程桌面连接到服务器并打开 SQL Server Management Studio。要连接到数据库,我输入.\SQLEXPRESS服务器名称并使用Windows Authentication. 然后我连接并且只看到系统数据库。我已将所有可能的数据库角色添加到我的登录名中,并且我看到我VIEW ANY DATABASE在有效选项卡中拥有权限。

sql-server ssms entity-framework t-sql sql-server-express

5
推荐指数
1
解决办法
2836
查看次数