强制@@ Servername在SQL Server中返回其他内容

时间:2009-07-17 23:21:01

标签: sql-server licensing

免责声明:虽然我试图这样做是为了欺骗许可证执行计划,但该公司已经停业,我只是在设置测试服务器。我不认为这是偷窃(作为开发人员自己销售软件,我不会这样做),因为如果我愿意,我不能支付另一个许可证。但是,如果社区不同意,请投票结束此问题。只是想提前做好准备。

我们使用服务器应用程序,作为其许可证实施的一部分,确认“SELECT @@ SERVERNAME”与服务器上安装的许可证相匹配。我正在设置此应用程序的测试实例,但由于我拥有的许可证被锁定到特定的服务器名称,我被卡住了。

有没有办法可以欺骗@@ SERVERNAME返回别的东西?将服务器的内部名称更改为与DNS名称不同的名称?我知道如果重命名服务器会有SQL Server问题,也许我可以利用它来完成我需要的工作(将服务器重命名为许可名称,安装SQL,然后重命名服务器,使其与我们的生产不冲突服务器)。

如果有另一种非hacky方法来实现这一点(设置一个隔离的域,使用没有网络连接的虚拟服务器等),我也会接受这些选项。社区认为最简单的方法是什么?

4 个答案:

答案 0 :(得分:2)

我可能会设置一个单独的计算机或以许可管理器所期望的名称命名的虚拟机。设置有点乏味,但它可能比寻找hacky解决方案更快地完成工作。当然,虽然安装正在运行,但我仍然希望以防万一...

答案 1 :(得分:2)

实际上可以设置服务器名称属性。

SQL 2000: http://msdn.microsoft.com/en-us/library/aa933172(SQL.80).aspx
SQL 2005: http://msdn.microsoft.com/en-us/library/ms174411(SQL.90).aspx
SQL 2008: http://msdn.microsoft.com/en-us/library/ms187944.aspx

答案 2 :(得分:1)

您可以尝试在测试服务器上使用sp_addserver存储过程来告诉SQL Server服务器名称是许可证正在查找的服务器名称。

来自MS docs

  

SQL Server安装程序设置服务器   在此期间命名为计算机名称   安装。要更改名称   服务器,使用sp_addserver,然后   重启SQL Server。

答案 3 :(得分:1)

删除“本地”链接服务器,然后使用您想要的名称将其添加回来。 sp_addserver 'foobar', 'local'将使@@ server返回'foobar'。见kb 303774