为什么可以';t我备份到SQL Server中的目录

本文关键字:Server SQL 备份 为什么 | 更新日期: 2023-09-27 18:20:37

我正在调试一个问题,该问题涉及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(访问被拒绝)。

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

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的权限根据目录的不同而不同。。。如何更改权限?

为什么可以';t我备份到SQL Server中的目录

运行BACKUP DATABASE查询的用户帐户是否属于db_backupoperator组?