2014-09-04 88 views
0

我在调试一个问题,该问题涉及将数据库备份到目录的SQL Server。为什么我无法备份到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是用户选择
  • @BackupName目录是YYYYMMDDHHMMSS.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

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

+0

目录C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup的备份成功,但对于此目录的完全相同的用户失败C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup 12 - 除目录外没有任何更改。 – user3174075 2014-09-04 17:23:47

+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 2014-09-04 18:30:44

+0

是的工作......谢谢 – user3174075 2014-09-04 19:39:48

相关问题