透明地指向远程服务器的SQL Server本地实例?像命名实例远程代理一样

时间:2017-07-19 21:10:59

标签: sql sql-server

我们有一个购买的商业应用程序,可访问已命名的本地安装的SQL服务器实例。

我们有什么方法可以 透明地 将数据库移动到远程共享SQL Server主机,但仍然在SQL Server中配置了一些东西,以便本地软件可以访问,因为它是一个本地实例?

请注意,由于它是购买的软件包,因此我无法修改其运行的查询,因此如果表格必须更改为完全合格或其他特殊使这项工作的T-SQL语法,它不是一个选项。

有效地,我们需要"技巧"应用程序使用远程数据库,但访问就像它是一个本地实例(虽然配置,某种代理,或者可能是黑魔法)。

应用程序数据库配置设置的总范围是选择要连接的本地实例的名称,如下图所示:enter image description here

SQL服务器安装在本地计算机(Win2012R2x64)上,并且有几个实例正在运行。我完全控制了本地和远程SQL服务器,因此可以对它们进行不受限制的配置更改。当前的DB版本是SQL2014,但如果需要更新版本的功能,可以升级到更新版本。

2 个答案:

答案 0 :(得分:1)

您可以尝试从本地sql server创建远程sqlserver的别名。 (通过Sql Server配置管理器|别名|添加新的别名)

您的本地实例别名应该是连接字符串用于连接的名称服务器名称。

我过去曾使用过这种方法来更改我连接的sql实例,而不更改任何连接字符串信息。

更多信息here

答案 1 :(得分:0)

一旦应用程序设置并创建了数据库,它取决于商业应用程序在本地安装的数据库中所需的访问权限。

您可能会在尝试中使任何支持协议无效。更糟糕的是,如果一个商业应用程序坚持使用本地实例,那么我就会想到它会在你的共享实例中坚持哪些安全恐怖。

您需要对数据库进行概要分析,同时使用应用程序的功能来了解它的功能以及执行方式。即使您确定安全权限可能受到很大限制,您也可能会发现应用程序会检查它是否具有更高的权限级别。

我没办法测试这种方法,但......

  • 照常安装应用程序,该应用程序将在您的本地实例上
  • 备份本地实例上的数据库,并将数据库还原到远程实例。请记住设置必要的登录。
  • 将本地实例上的链接服务器设置为远程实例。
  • 删除本地数据库实例中的所有对象
  • 为指向远程实例的所有对象创建sysnonyms。

如果它是一个只需要直接表访问的应用程序,这可能会起作用。然而,它是 ABOMINATION