【问题标题】:Backup and restore MS SQL database备份和恢复 MS SQL 数据库
【发布时间】:2011-12-10 03:42:49
【问题描述】:

情况很简单。
我在 C# 中有使用 MS SQL 数据库的应用程序。 出于某种原因,我需要添加一些备份/恢复功能。 我没有可以直接访问 MS SQL 实例。

还有其他简单的方法可以从 C# 备份数据库吗? 也许某些脚本可以创建可以在其他机器上使用的表、结构和数据?

我只需要通过 C#(标准 .NET 引用)来执行此操作。没有第三方应用程序。

【问题讨论】:

    标签: c# tsql sql-server-2005 database-backups database-restore


    【解决方案1】:

    不,没有。

    如果您没有权限甚至没有登录 SQL Server 实例,您将无法对数据库运行任何类型的 BACKUP 命令。

    备份文件系统(mdf、ldf 和 ndf)对于 SQL Server 来说是不够的备份策略。

    【讨论】:

      【解决方案2】:

      您可以为此使用SMO(前提是您具有适当的访问权限):

      要运行 SqlBackup 方法,用户必须有 BACKUP DATABASE 或 BACKUP 对数据库的 LOG 权限,或者是 db_owner 的成员和 db_backupoperator 固定数据库角色和 sysadmin 固定服务器 角色。

      还有:

      C# SMO backup of remote database to local machine.

      Getting Started with SMO in SQL 2005 - Backups

      【讨论】:

      • 用户需要适当的权限才能做任何事情! :)
      • 完全正确 :) 看起来 OP 运气不好,没有权限。
      • 可能。它仍然是一个有效的答案,权限与否。
      • 谢谢大家的回答和cmets。我的 SQL 用户有权使用 BACKUP DATABASE 语句,但无权访问将在服务器端创建的文件,所以这很糟糕。 SMO 不是一个选项。正如@Mitch Wheat 链接所说,您无法将远程数据库备份到本地计算机。我想我需要尝试使用带有 DataSet 的 WriteXml 和 ReadXml 并创建脚本来获取/设置从源到目标的数据和结构。
      猜你喜欢
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多