В базе данных 'master' отказано в разрешении CREATE DATABASE. EF Code-first asp. net Core 3.1 - PullRequest
0 голосов
/ 06 марта 2020

Я видел, как этот вопрос задавали много раз прежде, но они всегда были нацелены на более старые способы добавления строк подключения через файлы App.config.

Я использую asp. net Базовое веб-приложение 3.1, которое использует appsettings. json для создания строки подключения. Что выглядит следующим образом:

"ConnectionStrings": {
    "DefaultConnection": "Server=WS-NAME;Database=BookListRazor;User ID=sa;Password=****;Trusted_Connection=True;MultipleActiveResultSets=True"
  },

Я пытался использовать этот логин SSMS, но я также пытался создать новый, который не был sa. У обоих этих пользователей включены роли сервера dbcreator, publi c & sysadmin.

Когда я пытаюсь создать базу данных вручную с помощью SSMS, она работает отлично. Принимая во внимание, что когда я использую те же данные для входа в систему, что и часть моей строки подключения, я получаю сообщение об ошибке

CREATE DATABASE permission denied in database 'master'.

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

Заранее спасибо!

1 Ответ

3 голосов
/ 06 марта 2020

Это User ID=sa;Password=****;Trusted_Connection=True неправильно. Вы устанавливаете Trusted_Connection в False при передаче идентификатора пользователя и пароля. В противном случае идентификатор Windows клиентской программы используется для подключения к SQL Серверу

Из Документов:

Если указаны ИД пользователя и Пароль и установлена ​​Интегрированная безопасность Значение true, идентификатор пользователя и пароль будут игнорироваться и будет использоваться встроенная защита.

SqlConnection.ConnectionString

...