我创建了一个允许备份和恢复数据库的 C# 应用程序。它首先使用以下方法将数据库备份到 Sql 服务器上的本地文件中:
Backup backup = new Backup();
backup.Devices.AddDevice(Path.GetFullPath(backupFilePath), DeviceType.File);
...
backup.SqlBackup(server);
然后我通过使用以下备份文件恢复来创建新数据库:
Restore restore = new Restore();
restore.Devices.AddDevice(Path.GetFullPath(backupFileToRestoreFrom), DeviceType.File);
...
restore.SqlRestore(server);
创建新数据库后,我想删除我们创建的临时备份文件。因为我对 Sql server 框具有管理员权限,所以我可以使用以下方法删除远程服务器上的文件:
File.Delete("\\SqlServer\C$\Backups\BackupFileToDelete.bak")
它有效。但是,如果其他人在 Sql server 框上没有权限运行该应用程序,它将抛出一个关于没有权限的异常。
那么有没有可以调用的 Sql SMO 函数来删除在远程 Sql 服务器上创建的备份文件?