如何在不使用CLR存储函数的情况下在Sql Server中获取服务器标识符?

时间:2011-05-30 13:11:34

标签: sql-server sql-server-2008

我需要查询Sql Server并获取一个ID,用于标识安装了SQL Server的计算机。在某些复杂方案(如故障转移群集或类似架构)中也能正常运行的ID。

我需要这个用于许可证检查,我将我的许可证密钥绑定到ID,目前我使用数据库创建日期和服务器名称的组合来创建“我的id”,无论如何这不是很好,特别是因为它是一个数据库ID,而不是服务器ID。

过去我曾经用扩展存储过程读取硬盘序列号,但是不是(至少在sql server 2008中)获取此ID的简单方法吗?

我不想使用CLR存储过程。

2 个答案:

答案 0 :(得分:2)

  

用于标识安装SQL Server的计算机的ID。一个运作良好的ID   也适用于故障转移集群或类似架构等复杂场景。

所以你想要吗?识别MACHINE或识别CLUSTER并处理企业senarios?

一般情况下,这不是扩展存储过程或CLR所不可能的。点。你排除了所有的攻击,然后就没有了。而你确实读过硬盘号的事实已经暗示你不准备处理更大的安装。如果没有硬盘(如光盘),而是SAN上的LUN,您会阅读什么?如果硬盘是硬件raid控制器,你会怎么做?你从一开始就采取的方法几乎没有用,但你没有看到它,因为你不与企业客户打交道;)这也意味着你不处理复杂的场景(集群等);)

正如gbn所说,不要打扰带有幼稚复制保护的企业客户,签订许可协议。一般而言,企业软件几乎没有技术限制,允许企业提供良好的服务,而无需通过箍来获得实验室安装的远程许可密钥。

答案 1 :(得分:1)

它被称为“许可协议”

我不希望某个应用程序关闭,因为它认为它正在运行一个不同的框。

如果我们在日志传送或镜像设置中有DR故障转移,则这些是2个单独的SQL Server安装。什么样的服务器运行单个硬盘呢?

其他SO问题:https://stackoverflow.com/search?q=software+licensing