Я отлаживаю проблему, связанную с 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
в зависимости от каталога ... как я могу изменить разрешения?
Резервное копирование завершается для каталога C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup, но не выполняется для одного и того же пользователя для этого каталога C: \ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup 12 - ничего не меняется, кроме каталога. – user3174075
, попробуйте: 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
yep работал ... спасибо – user3174075