Разрешение CREATE DATABASE отклонено в базе данных «master» во время Update-Database - PullRequest
0 голосов
/ 19 сентября 2018

У меня пустая база данных (без таблиц), и я хочу использовать Update-Database для создания всех таблиц из моих моделей.Итак, я добавил начальную миграцию, которая показывает все таблицы, которые я должен добавить в базу данных.

Моя строка подключения: Data Source=webhw27.htx-net.pl,51433;Initial Catalog=1832_testowa;Integrated Security=false;User ID=1832_admin;Password=******;Encrypt=True;TrustServerCertificate=True

Во время обновления базы данных я получаю

В базе данных 'master' отказано в разрешении CREATE DATABASE

Почему он пытается создать мастер базы данных, когда я хочу обновить 1832_testowa db?Я также добавил Database.SetInitializer<ApplicationDbContext>(null); к Global.asax, который я нашел в другой теме - все то же самое.

В панели хостинга я установил этот db для пользователя 1832_admin по умолчанию - все та же проблема.

Я также добавил это соединение в Visual Studio Server Explorer и могу легко создать любую таблицу в этой базе данных вручную.

В чем проблема, почему я не могу использовать Update-Database для миграции сейчас (ив будущем, если мне придется что-то добавить)?

1 Ответ

0 голосов
/ 07 июня 2019

Попробуйте написать простой запрос для создания таблицы в вашей базе данных на SQL Server (удалите или удалите таблицу позже, если потребуется), если она выполняется успешно, вам нужно проверить, правильно ли вы указали имя пользователя, имя пользователя и пароль.в файле Web Config Visual Studio.

Пример:

<add name="DefaultConnection" connectionString="Data Source=DESKTOP-J87BQMD\SQLEXPRESS;Initial Catalog=cust1;User ID =xxxx;Password=xxxx" providerName="System.Data.SqlClient" />

Здесь также проверьте, совпадает ли имя «DefaultConnection» с тем, которое вы упомянули в файле xyz.cs., где вы упомянули соединение SQL следующим образом:

        SqlConnection con = null;

        string result = "";

        try

        {
           con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());
           //your further code
        }

Если вы все сделали правильно, попробуйте процедуру, указанную ниже:

На сервере SQL перейдите к Безопасность -> Логины -> выберите и дважды щелкните свой логин (например, sa) ->

  1. Роли сервера >> (убедитесь, чточто public и sysadmin выбраны)
  2. User Mapping >> (должна быть отмечена только ваша база данных, снимите флажок 'master' и другие базы данных; Членство в роли базы данных для :( db_name) >> выберите (tick) администратор db_owner и db_security.
  3. Статус >> Предоставление разрешений, вход в систему включен

    Я столкнулся с той же ошибкой, и шаги, которые я упомянул выше, удалили эту ошибку, надеюсь, эторешает ваш тоже.

...