У меня есть веб-приложение ASP.NET MVC, развернутое в IIS на компьютере с Windows Server 2012. При первом запуске приложение создает необходимую базу данных и таблицы, если это необходимо. Все это работает нормально, и теперь я хочу выполнить некоторое администрирование базы данных с помощью SQL Server 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" />
В IIS пул приложений настроен на работу с удостоверением LocalService
и Load User Profile
настройка True
. В Sql Server Express мы добавили логин для Local Service
счет и дал ему dbcreator
роль. Когда приложение запустилось, оно смогло создать базу данных и таблицы, и, похоже, все работает.
Затем я подключаюсь к серверу с удаленным рабочим столом и открываю SQL Server Management Studio. Для подключения к базе я ввожу .\SQLEXPRESS
в качестве имени сервера и аутентифицироваться с помощью Windows Authentication
. Затем я подключаюсь и видеть только системные базы данных. Я добавил все возможные роли базы данных в свой логин и вижу, что у меня есть VIEW ANY DATABASE
разрешение на вкладке Действующие.
User Instance=true
Это потому, что он работает как пользовательский экземпляр. Возможно, вы сможете подключиться к нему, используя данные Вот
В качестве альтернативы, если вы удалите User Instance=true
из строки подключения, если вы сначала используете код EF, это должно привести к созданию новой БД в собственном экземпляре SQL. Имейте в виду, что таблицы будут пустыми, и вам нужно будет переместить любые данные из вашего пользовательского экземпляра, если они есть.