データベースのバックアップと復元を可能にする 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 サーバー ボックスの管理者権限を持っているので、次のコマンドを使用してリモート サーバー上のファイルを削除できます。
File.Delete("\\SqlServer\C$\Backups\BackupFileToDelete.bak")
そしてそれは動作します。ただし、Sql サーバー ボックスに対する権限を持たない他のユーザーがアプリを実行すると、権限がないという例外がスローされます。
リモート Sql サーバーで作成されたバックアップ ファイルを削除するために呼び出すことができる Sql SMO 関数はありますか?