Доступ запрещен CREATE DATABASE LocalDB - PullRequest
1 голос
/ 23 мая 2019

Я установил SSMS 18. Я установил новый экземпляр LocalDB, выбрав его из установки SQL Server Express 2017 , поскольку он еще не включен в установку SSMS 18.

После установки, когда я пытаюсь создать базу данных с SQL ниже.

CREATE DATABASE Test

Я получаю следующую ошибку:

Msg 5123, Level 16, State 1, Line 1
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file 'C:\Users\brechtTest.mdf'.
Msg 1802, Level 16, State 4, Line 1
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

Одна вещь, которую я заметил, но не уверен, что она важна, это то, что путь к файлу вообще не имеет смысла. Отсутствует обратная косая черта.

Я поднимаю свойства сервера и пытаюсь добавить обратную косую черту, чтобы решить проблему. enter image description here

Но тогда эта ошибка поражает меня. enter image description here

После этого я пытаюсь вызвать града и дать всем разрешения на компьютере \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14E.LOCALDB \ MSSQLServer. Это предотвращает появление ошибки при изменении каталогов в настройках сервера. Но это не решает исходную проблему.

enter image description here

Странно то, что создание базы данных через графический интерфейс (как показано ниже) работает без проблем. Но мне нужно, чтобы CREATE DATABASE работал, потому что я получаю ошибки с миграциями EntityFrameworkCore, использующими эту функциональность.

enter image description here

Как только я разрешаю себе все разрешения для «C: \ Users», я могу создавать базы данных с помощью CREATE DATABASE, поскольку используемый путь к файлу - «C: \ Users \ brechtTest.mdf». Но этот путь к файлу не имеет смысла.

Некоторые вещи, которые я пробовал:

  • Переустановка LocalDB.
  • Запуск SSMS от имени администратора.
  • Настройка службы сервера SQL для использования локального пользователя.
  • Измените ключи компьютера \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14E.LOCALDB \ MSSQLServer, чтобы включить обратную косую черту.

Как я могу заставить это работать должным образом, то есть, как я могу настроить путь по умолчанию, чтобы включить обратную косую черту так, чтобы "C: \ Users \ brechtTest.mdf" стал "C: \ Users \ brecht \ Test.mdf"?

1 Ответ

0 голосов
/ 23 мая 2019

Я не вижу изображения из-за правил моего магазина, но я думаю, что вы можете достичь своей цели двумя способами.

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

В качестве второго варианта указывается расширенность файлов данных, например:

CREATE DATABASE [test]
  ON  PRIMARY 
( NAME = N'test', FILENAME = N'c:\mypath\test.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'test_log', FILENAME = N'c:\mypath\test_log.ldf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...