gpt4 book ai didi

c# - 使用 c# 创建 SQL Server 备份文件 (.bak) 到任何位置

转载 作者:太空狗 更新时间:2023-10-29 18:12:58 25 4
gpt4 key购买 nike

我正在尝试用 C# 编写简单的应用程序,它允许我备份、压缩和通过 ftp 发送我的 SQL Server 数据库。我遇到的一个问题是,如果我尝试在与“C:\Program Files\Microsoft SQL Server\MSSQL.3\MSSQL\Backup”不同的位置创建备份文件 (.bak),我将无法创建它或“C:\Program Files\Microsoft SQL Server\MSSQL.3\MSSQL\Data”文件夹。我知道这是一个前提问题。有人可以指点我资源或在这里写一个简短的片段如何以编程方式将这样的权限添加到我系统上的任何文件夹。

问候克里斯

最佳答案

我假设您正在将程序作为计划任务运行...您是否为任务的执行用户授予了对目标文件夹的写入权限??

编辑:
有了权限,你可以有两种情况:

  • windows 认证
  • 混合认证

如果你使用的是windows认证,那么会占用windows用户的读写权限。否则,sql server 服务帐户的权限。

这种行为对我来说很有意义,并且可能会在您的场景中发挥作用!

编辑 2:
我不想鼓励你这样做......当你搞砸他们的 acl 时,一些管理员可能会讨厌你但是this可能会成功

顺便说一句:马格努斯约翰逊 already gave你一个“试试这个”链接

无论您采用哪种方法 - 请务必提交正确的用户(如上所述!)

(完整历史)
...

旁注:
我知道这不是您问题的确切答案,但我建议您使用 smo 生成备份 ...

喜欢

using Microsoft.SqlServer.Management.Smo;

var bdi = new BackupDeviceItem(/* your path inlcuding desired file */);
var backup = new Backup
{
Database = /* name of the database */,
Initialize = true
};

backup.Devices.Add(bdi);

var server = new Server(this.SqlServer);

try
{
backup.SqlBackup(server);
}
catch (Exception ex)
{
// * log or sth
}

您只需关心 .dll。为所需的服务器版本获取程序集(一些参数/属性因不同的服务器版本而异)
更多信息 here

关于c# - 使用 c# 创建 SQL Server 备份文件 (.bak) 到任何位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com