我在 Windows Server 2012 计算机上的 IIS 上部署了一个 ASP.NET MVC Web 应用程序。当应用程序首次启动时,它会根据需要创建所需的数据库和表。这一切都运行正常,现在我想通过 SQL Server Management Studio 对数据库进行一些管理。但是,当我打开该工具时,我只看到系统数据库。 为了查看 Web 应用程序创建的数据库,我需要做什么?
一些可能有帮助的细节:
该应用程序在 Web.config 中使用以下连接字符串:
<add name="DefaultConnection" connectionString="Data Source=.\SqlExpress; Initial Catalog=Foo.Dashboard;Integrated Security=SSPI;User Instance=true" providerName="System.Data.SqlClient" />
在 IIS 中,应用程序池设置为使用身份运行LocalService
,Load User Profile
设置是True
。在 Sql Server Express 上,我们为该帐户添加了登录名Local Service
并赋予其dbcreator
角色。当应用程序启动时,它能够创建数据库和表,一切似乎都在正常运行。
然后,我使用远程桌面连接到服务器并打开 SQL Server Management Studio。要连接到数据库,我输入.\SQLEXPRESS
服务器名称并使用 进行身份验证Windows Authentication
。然后我连接并只能看到系统数据库。我已将所有可能的数据库角色添加到我的登录名中,并且我看到我VIEW ANY DATABASE
在“有效”选项卡中拥有该权限。
答案1
User Instance=true
这是因为它作为用户实例运行。您可以使用详细信息连接到它这里
或者,如果您从连接字符串中删除User Instance=true
,如果您首先使用 EF 代码,那么这将导致在 SQL 实例上创建一个新的数据库。请记住,表将为空,您需要从用户实例中移动任何数据(假设有任何数据)。