我正在调试一个处理 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
因目录而异...如何更改权限?