給定一個Delphi和Interbase客戶端 - 服務器應用程序,我想根據數據庫的用戶數來許可應用程序。這怎麼能用商業授權軟件來完成?我沒有看到任何這些列表功能,看起來像他們會覆蓋這一點。每個用戶最初登錄到數據庫。數據庫看起來非常有用,它可以向任何用戶或至少是管理員開放。我是否還必須編寫一個Delphi exe或dll在服務器上運行 - 可能是數據庫中的一個功能 - 連接到該服務器的許可證?不知道如何繼續。 順便說一句,Interbase授權同時使用的用戶,但我認爲他們直接寫入服務器,但我想要類似的東西。如何許可數據庫中的用戶數量?
1
A
回答
1
要控制同時進行的客戶端連接,您肯定需要服務器端應用程序。 它可以是一個簡單的tcp/ip套接字服務器作爲服務(linux守護進程)或另一個(midas?)服務器層。
當您的客戶端應用程序啓動時,它會調用一個服務器方法,例如Session.Connect,在此計算活動連接並在最大限制達到時返回false(無代碼)。 當應用程序關閉時,您使用Session.Disconnect通知服務器。減少連接數。
在客戶端應用程序和服務器服務(像我悲傷的套接字)之間保持一個實時(永久)連接來處理應用程序掛起,不受控制的重新啓動並處理此事件(例如服務器端的OnSockedDisconnect)以減少連接計數和處理斷開propery,例如寫在日誌等...
當然溝通應該加密(握手),以避免不必要的客人。 你也可以玩SIM卡閱讀器等。
這種方法不會提供工業(核)級別的安全性,但如果正確地編碼,甚至專家黑客可能需要一段時間才能打破它。或者,您可以查看一些現成的保護工具,如SafeNet(HASP保護)。
此外,Firebird(也可能是Interbase)具有數據庫連接/斷開觸發器,其中如果用戶具有權限,則可以讀取連接數。但是,如果DB存儲在客戶服務器上,這些可以輕鬆更改。
相關問題
- 1. 如何從Yii的數據庫中獲得用戶許可
- 2. 向數據庫用戶授予許可
- 3. 如何驗證數據庫中用戶名的可用性?
- 4. 指定用戶可擁有的最大數據庫數量
- 5. Codeigniter - 只允許用戶從數據庫中刪除,如果用戶在數據庫中創建了條目
- 6. 如何查看數據庫中的特定用戶數據?
- 7. 如何限制用戶修改mysql數據庫中的數據?
- 8. 如何限制Intranet環境中每個許可證的用戶數量?
- 9. 需要數據庫中的用戶到用戶數據。如何避免災難?
- 10. 在數據庫中存儲可變數量的數據
- 11. 如何獲取在firebase數據庫中登錄的用戶數量(不帶addValueEventListener())?
- 12. 如何允許用戶在Cpanel中創建隨機數據庫的權限(Silverstripe)
- 13. hibernate是否可以創建數據庫和數據庫用戶?
- 14. 如何從數據庫中獲取所有用戶數據?
- 15. 如何將用戶數據存儲在外部數據庫中
- 16. 如何使用現有數據庫的數據驗證用戶?
- 17. 如何構建一個可選的許多數據庫?
- 18. 從數據庫中顯示用戶數量的最快方法?
- 19. 如何使用變量從數據庫中選擇數據?
- 20. cansecurity中的用戶帳戶數據庫
- 21. 數據挖掘庫和許可限制
- 22. Cms數據庫許可證結構
- 23. 如何從php數據庫的數據庫中獲取用戶類型
- 24. 如何允許客戶端IP訪問Microsoft Azure數據庫?
- 25. 如何爲許多客戶數據庫設置quartz.net
- 26. 如何在用戶數據庫中分離用戶特定數據?
- 27. 如何更新數據庫中的庫存數量?
- 28. 如何用mongo shell來計算mongod中的數據庫數量?
- 29. 如何通過數據庫管理MediaWiki中的用戶帳戶?
- 30. 如何存儲許多數據,如在數據庫
您是否知道有任何商業授權軟件可以做到這一點,或者您必須通過開發自定義功能來創建此功能? –
我知道一些使用硬件(hasp)保護的軟件公司。與套接字服務器的想法相對容易實現。 – Marcodor