远程备份SQL Server数据库,无需备份权限

4
我有一个运行SQL Server 2005的主机,我有权限登录我的数据库并复制/读取/写入/删除所有表格/视图/存储过程。我尝试右键单击服务器并选择备份,但似乎我没有权限进行任何备份操作。
这不可能是常见情况(有人使用主机/提供商的数据库)。
有人发现如何将数据库备份到远程计算机(而不是简单地逐行复制)吗?我想要自己的服务器备份,而不依赖于主机执行备份。如果有,请问使用了什么库/应用程序?
注意,我相信我的主机允许使用(数据库发布向导)进行某种形式的备份。有人知道它使用了哪些库(以便我可以在我的代码中重现它)吗?
9个回答

4

1

数据库发布向导只是将您的数据库中的所有对象提取到一个 .sql 文件中。我不确定关于库的问题,但我有点不清楚为什么您需要再现它。如果您需要以编程方式调用它,则它具有命令行界面。

这是下载链接:链接

此外,这是一个关于如何使用发布向导的命令行的链接:更多链接


0
如果您正在使用 SQL Server,您可以将 MSSQL 服务启动到网络服务中,这样您就可以在计算机共享文件夹中创建数据库备份,前提是您具有共享文件夹的写入权限。ñ_ñ
USE AdventureWorks;
GO
BACKUP DATABASE AdventureWorks
TO DISK = '\\yourmachine\SQLServerBackups\AdventureWorks.Bak'
   WITH FORMAT,
      NAME = 'Full Backup of AdventureWorks';
GO

请参见:http://msdn.microsoft.com/zh-cn/library/ms191304.aspx


0
我似乎没有备份的权限。
“似乎”是什么意思?只是选项不在那里吗?
如果是这种情况,我怀疑您正在使用SQL Server Management Studio的Express版本。Management Studio中的某些功能(包括备份/还原)仅适用于付费版本。但是该功能仍存在于数据库本身中,权限可能没问题。如果您使用完整版的Management Studio连接,则可以进行备份。

我很确定不是这个问题:我收到了这个错误信息:“在对象'xp_get_tape_devices'、数据库'mssqlsystemresource'、模式'sys'上拒绝了EXECUTE权限。” - maxfridbe

0
针对另一个回复:托管提供商;我非常怀疑他们会授权用户帐户读写本地磁盘。
  • 个人建议使用数据库发布向导来编写脚本,这样可以得到一个实际可用的脚本,以备将来使用。

  • 在非 Express 版本中,您还可以右键单击数据库并选择“脚本”选项。

  • 或者,您可以联系主机商询问有关访问备份的信息。不确定是否可以获取它们,或者将它们返回进行恢复的过程是什么。

  • 还有其他工具可用于此,您可以获取其源代码。不确定它们的功能如何。


0
补充Joel的评论:托管公司可能希望限制这些操作,以提高其SQL Server的性能(也许他们只想在晚上进行备份或其他什么)。有时候他们只是想为频繁备份收取额外费用。
因此,您将不得不采取不同的方法来备份数据。别忘了要遵守主机的SQL限制;)

0
你最好的选择是联系你的托管提供商,看看他们是否提供通过网页控制面板或其他方式访问备份的服务。

0

看一下http://www.codeplex.com/SqlWebAdmin

我和1and1.com主机一起使用它,只需像安装其他网站一样安装它,然后您“应该”能够执行许多类似于SSMS的管理功能。 您的托管服务可能会有所不同... 我知道很多人出于明显的原因将其锁定。


0
如果您正在使用SQL Server,您可以将MSSQL服务启动为网络服务,这样您就可以在计算机上的共享文件夹中创建数据库备份,前提是您对共享文件夹具有写入权限。 ñ_ñ
示例代码:
USE AdventureWorks;
GO
BACKUP DATABASE AdventureWorks
TO DISK = '\\yourmachine\SQLServerBackups\AdventureWorks.Bak'
   WITH FORMAT,
      NAME = 'Full Backup of AdventureWorks';
GO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接