Я пытаюсь выполнить следующий скрипт в SQL Server Management Studio:
USE [master]
GO
CREATE DATABASE [test1] ON PRIMARY (
NAME = N'test1',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf',
SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB)
LOG ON (
NAME = N'test1_log',
FILENAME =
N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1_log.ldf',
SIZE = 164672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
Но я получаю ошибку:
Сообщение 5123, уровень 16, состояние 1, строка 2
CREATE FILE обнаружена ошибка операционной системы 5 (доступ запрещен)
при попытке открыть или создать физический файл
'C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ test1.mdf.Сообщение 1802, уровень 16, состояние 4, строка 2
СОЗДАТЬ БАЗУ ДАННЫХ не удалось. Некоторые имена файлов не могут быть созданы. Проверьте связанные ошибки.
У меня уже есть все полномочия на роль для моего пользователя, есть идеи, что не так?
sql-server
sql-server-2012
thiagocfb
источник
источник
CREATE DATABASE [test1]; GO
?Ответы:
Вы получаете ошибку разрешения. У учетной записи, на которой запущен SQL Server, нет необходимых прав на папку, в которой будут находиться файлы базы данных.
Вы должны предоставить учетной записи, на которой работает SQL Server (не вашей учетной записи) полный контроль над C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA.
источник
Network Service
учетной записью. Поэтому соответствующие права должны быть изменены в соответствующих каталогах для этой учетной записи, если это также относится и к вашему ПК.Судя по нашей ветке комментариев, похоже, что вы немного пострадали во время установки. Установщик позволяет вам выбрать каталог данных по умолчанию и (я бы предположил ) устанавливает соответствующие разрешения для этого каталога для указанной учетной записи службы.
В своем
CREATE DATABASE
заявлении вы указываете местоположение, но было ли это место тем, которое было указано в исходной настройке? Изменился ли сервисный аккаунт?Чтобы проверить это, просто запустите
Если вы получаете ту же ошибку, возможно, учетная запись службы изменилась или что-то в разрешениях NTFS изменилось.
Путь разрешения (также основанный на строке комментария) должен подтвердить, что служба, на которой запущен SQL Server, имеет разрешения R / W для указанного вами пути. Сделать это:
Пуск-> Выполнить->
services.msc
-> прокручивать список служб, пока не найдете SQL Server-> щелчок правой кнопкой мыши-> свойства-> вкладка «Вход»Теперь перейдите и убедитесь, что у учетной записи есть соответствующее разрешение на этот каталог, чтобы делать то, что ему нужно.
источник
Кажется, в указанном пути указано неверное количество пробелов, поэтому оно не соответствует дереву папок.
Сервер Sql не будет создавать несуществующий путь.
Изменить :
ваш оригинальный пост говорит:
и я думаю, что это не существующие пути, и так как они обделены двоеточиями, важно, сколько там пробелов.
источник
Microsoft SQL
иServer
, и это было странно для меня, потому что обычно это должен быть только один пробел. Это не видно сейчас, потому что ваше сообщение отредактировал @marc_sВышеуказанный скрипт, который вы публикуете в разделе вопросов, верен. Возможно, неверный путь к файлу, который вы упоминаете в FILENAME.
Пожалуйста, используйте скрипт, приведенный ниже. Это просто работает, а затем убедитесь, что путь к файлу, который вы используете в вашем скрипте.
источник