2014-09-04 1 views
0

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

Приложение Я бег пусков с правами администратора, который установлен в app.manifest файле:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

Приложение устанавливает начальный каталог для SQL по умолчанию каталога резервного сервера:

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup 

Пользователю разрешено изменять каталог резервного копирования, и они могут вводить его, поэтому набирается что-то вроде этого:

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup 12 

Затем программа затем проинструктировать SQL для резервного копирования в каталог с использованием хранимой процедуры:

BACKUP DATABASE @DatabaseName TO DISK = @FilePath WITH NAME = @BackupName 

Где:

  • @FilePath это каталог пользователь выбирает
  • @BackupName является YYYYMMDDHHMMSS.bak

Сбой вызова:

Ошибка операционной системы 5 (доступ запрещен).

Так что я сделал некоторые исследования о правах каталога с помощью Icacls в командной строке для каталога резервного сервера в SQL по умолчанию:

icacls .\backup 

CREATOR OWNER:(OI)(CI)(IO)(F) 
NT AUTHORITY\SYSTEM:(OI)(CI)(F) 
BUILTIN\Administrators:(OI)(CI)(F) 
MIKE-2K8-1\SQLServerMSSQLUser$mike-2k8-1$MSSQLSERVER:(OI)(CI)(F) 

Затем снова для каталога пользователя создает:

icacls .\backup 12 

BUILTIN\Administrators:(I)(F) 
CREATOR OWNER:(I)(OI)(CI)(IO)(F) 
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F) 
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F) 
BUILTIN\Users:(I)(OI)(CI)(RX) 
MIKE-2K8-1\SQLServerMSSQLUser$mike-2k8-1$MSSQLSERVER:(I)(OI)(CI)(RX) 

Я вижу, что разрешения разные для SQLServerMSSQLUser в зависимости от каталога ... как я могу изменить разрешения?

ответ

1

Учетная запись пользователя вы используете запрос BACKUP DATABASE под частью группы db_backupoperator?

+0

Резервное копирование завершается для каталога C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup, но не выполняется для одного и того же пользователя для этого каталога C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup 12 - ничего не меняется, кроме каталога. – user3174075

+0

, попробуйте: icacls "C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup 12"/grant: r "SQLServerMSSQLUser $ mike-2k8-1 $ MSSQLSERVER": (OI) (CI) (I) (RX) M – binks

+0

yep работал ... спасибо – user3174075