为什么我不能备份到SQL Server中的目录?

时间:2014-09-04 16:44:20

标签: c# sql sql-server access-rights

我正在调试一个处理SQL Server将数据库备份到目录的问题。

我正在运行的应用程序使用管理员权限启动,该权限在app.manifest文件中设置:

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

应用程序将初始目录设置为默认的SQL Server备份目录:

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是用户选择的目录
  • @BackupNameYYYYMMDDHHMMSS.bak

电话会议失败:

  

操作系统错误5(访问被拒绝)。

因此,我在命令行上使用icacls对默认SQL Server备份目录进行了一些目录权限调查:

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 个答案:

答案 0 :(得分:1)

用户帐户是否在db_backupoperator组的一部分下运行BACKUP DATABASE查询?