如何在数据库中许可用户数?

时间:2012-06-25 12:42:32

标签: delphi licensing interbase

鉴于Delphi和Interbase客户端 - 服务器应用程序,我想根据数据库中的用户数来许可应用程序。如何使用商业许可软件完成这项工作?我没有看到任何这些列表功能看起来像他们会覆盖这个。每个用户最初都登录到数据库。数据库看起来如此可用,它将对任何用户开放 - 或者至少对管理员开放。我是否还必须编写一个Delphi exe或dll来在服务器上运行 - 可能作为数据库中的一个函数 - 许可与此相关联?不知道如何继续。 顺便说一句,Interbase同时授权用户,但我认为他们已将其写入服务器,但我想要类似的东西。

1 个答案:

答案 0 :(得分:1)

要控制同时进行的客户端连接,您最终需要一个服务器端应用程序。 它可以是一个简单的tcp / ip套接字服务器作为服务(Linux上的守护进程)或另一个(midas?)服务器层。

当您的客户端应用程序启动它时,调用服务器方法,例如Session.Connect,此处计算活动连接并在最大限制达到的情况下返回false(无代码)。 当应用程序关闭时,您使用Session.Disconnect通知服务器。减少连接数。

同样最好保持客户端应用程序和服务器服务之间的实时(永久)连接(如我悲伤的套接字)来处理应用程序挂起,不受控制的重新启动以及处理此事件(例如服务器端的OnSockedDisconnect),以减少连接数和处理断开连接,例如写入日志等...

当然,沟通应该加密(动手),以避免不受欢迎的客人。 你也可以玩SIM卡读卡器等。

这种方法不会提供工业(核)级别的安全性,但如果进行核心编码,即使专家黑客也可能需要一段时间才能破解它。

或者,您可以查看一些现成的保护工具,如SafeNet(HASP保护)。

此外,Firebird(可能还有Interbase)具有DB Connect / Disconnect触发器,如果​​用户具有权限,它可以读取连接数。但是,如果数据库存储在客户服务器上,则可以轻松更改这些内容。