Delphi 如何授权数据库中的用户数?

Delphi 如何授权数据库中的用户数?,delphi,licensing,interbase,Delphi,Licensing,Interbase,给定一个Delphi和Interbase客户机-服务器应用程序,我希望根据数据库中的用户数量来许可该应用程序。如何使用商业许可软件实现这一点?我看不到任何列表中的功能能够涵盖这一点。每个用户最初都登录到数据库。该数据库似乎非常可用,可以对任何用户开放,至少对管理员开放。我是否还需要编写一个Delphi exe或dll,以便在服务器上运行(可能作为数据库中的一个函数),并将许可连接到该服务器?我不知道怎么继续。 顺便说一句,Interbase许可同时使用的用户,但我认为他们将其写入了服务器,但我希

给定一个Delphi和Interbase客户机-服务器应用程序,我希望根据数据库中的用户数量来许可该应用程序。如何使用商业许可软件实现这一点?我看不到任何列表中的功能能够涵盖这一点。每个用户最初都登录到数据库。该数据库似乎非常可用,可以对任何用户开放,至少对管理员开放。我是否还需要编写一个Delphi exe或dll,以便在服务器上运行(可能作为数据库中的一个函数),并将许可连接到该服务器?我不知道怎么继续。
顺便说一句,Interbase许可同时使用的用户,但我认为他们将其写入了服务器,但我希望类似的东西。

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

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

在客户端应用程序和服务器服务(如我所说的套接字)之间保持实时(永久)连接也是一个好主意,以处理应用程序挂起、不受控制的重新启动和处理此事件,例如服务器端的OnSockedDisconnect,以减少连接计数并处理断开连接属性,例如写入日志等

当然,交流应该加密(握手),以避免不必要的客人。 您还可以使用sim卡读卡器等

这种方法不会提供工业(核)级别的安全性,但如果编码正确,即使是专家黑客也可能需要一些时间来破解

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


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

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

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

在客户端应用程序和服务器服务(如我所说的套接字)之间保持实时(永久)连接也是一个好主意,以处理应用程序挂起、不受控制的重新启动和处理此事件,例如服务器端的OnSockedDisconnect,以减少连接计数并处理断开连接属性,例如写入日志等

当然,交流应该加密(握手),以避免不必要的客人。 您还可以使用sim卡读卡器等

这种方法不会提供工业(核)级别的安全性,但如果编码正确,即使是专家黑客也可能需要一些时间来破解

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


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

您是否知道有任何商业许可软件可以做到这一点,或者必须通过开发自定义功能来创建此功能?我知道一些软件公司使用硬件(hasp)保护。使用socket server相对容易实现。您知道有任何商业许可软件可以实现这一点,或者必须通过开发自定义功能来实现这一功能吗?我知道一些软件公司使用硬件(hasp)保护。使用socket服务器,它相对容易实现。