Копия базы данных SQL Server 2008 - права доступа к файлу - PullRequest
4 голосов
/ 21 июля 2009

Для SQL Server 2008 Developer Edition в 64-разрядной версии Vista:

Я попытался скопировать базу данных с использованием учетной записи администратора Vista, используя метод присоединения / отсоединения, и это не удалось из-за ошибки разрешения файла, поэтому я дал пользователю, что службы sql работают как запись и изменение каталога. Копия не сработала. Затем я дал ему полный контроль. Копия сработала.

Имеет ли это смысл?

Если я отзову полный контроль от пользователя, это вызовет проблемы?

Странная вещь в том, что в существующей рабочей базе данных с файлами в другом каталоге нет специальных разрешений для каталога и файлов для базы данных, так почему для копирования требуется полный контроль?

Ответы [ 2 ]

3 голосов
/ 22 июля 2009

Когда вы отсоединяете БД, для файлов MDF / LDF может быть установлено более ограниченное количество разрешений, чем вы ожидаете, например, исключая основную учетную запись, которая выполняла отсоединение - может быть, учетная запись службы SQL Server или учетная запись домена пользователя, который выполнил отделение Раньше мне приходилось вручную добавлять разрешения на вкладку «Свойства»> «Безопасность» для других пользователей, иначе файлы действуют так, как будто они заблокированы. Смотри также http://www.onupdatecascade.com/2009/07/sql-server-locks-mdf-and-ldf-files-upon.html

также: http://msdn.microsoft.com/en-us/library/ms189128.aspx

(спасибо GrumpyOldDBA )

0 голосов
/ 26 июня 2015

Если сервер и / или данные, с которыми вы работаете, не требуют установки этих ограничительных разрешений, вы можете установить флаг запуска в SQL Server, который переопределит эту функцию. Я понимаю, что Microsoft собирается с этим - они предполагают, что если вы отсоединяете БД, они не хотят, чтобы кто-нибудь ушел с файлом; однако я думаю, что помешать хорошему хакеру сделать это легче, чем сделать, и шифрование БД - лучший способ защиты данных.

В любом случае, существует «Флаг трассировки 1802», который имеет странное название, поскольку он не имеет ничего общего с трассировкой. Вы хотите добавить его в свой запуск SQL в SQL Configuration Manager, если хотите сохранить это поведение.

https://support.microsoft.com/en-us/kb/922804

У меня была такая же проблема, и я нашел ответ в StackExchange: https://dba.stackexchange.com/a/77683/11001

...