我即将开始研究一个新系统,该系统需要支持多个用户,并可能允许通过Internet访问数据库。
系统将是win32,而不是基于Web的,数据库将只在办公室中,并且可以在任何地方访问。我不确定这是否是一种安全明智的危险方法,我愿意接受建议
数据库将是SQL Server,系统将在Delphi 6中实现
有谁知道我如何开始这个?我还需要考虑记录锁定。
如果有人可以提供赞赏的好文章的链接。
干杯
保
答案 0 :(得分:6)
恕我直言,最简单的方法是创建一个VPN,通过Internet安全地公开您的数据库。
安全性非常好,因为只有通过可信的VPN连接才能访问数据库。
您的数据库将随处可用,使用Internet作为隧道来安全地传输数据包。
因此,您的Delphi代码将像往常一样使用TCP / IP连接通过VPN安全隧道连接到数据库。
无需添加额外的Delphi工件,如Indy组件等。 并且您将能够连接到非Delphi客户端的数据库,这可能是使用某些数据库浏览工具的好主意。
答案 1 :(得分:2)
在互联网上公开数据库存在安全风险。安全漏洞很容易被远程利用。
解决方案是:
记录锁定由数据库本身处理 - 仔细阅读有关SQL Server锁定模式的文档,以避免以后出现意外情况。如果连接速度不够快,您可以选择在客户端缓存一些数据(TClientDataset适用于此),它也可以减少锁定问题,但它可能会引入udpate冲突。
答案 2 :(得分:1)
您可能是指通过TCP / IP进行通信的客户端服务器系统。
您可以使用Indy组件创建它。请务必查看示例,因为它们不易使用,但您几乎可以创建与之相关的任何网络。
答案 3 :(得分:1)
实际上,根据您的经验,偏好和工具,有许多可能的技术。我建议你使用ADO连接到数据库而不是BDE。为此,您可以使用属于Delphi的ADO组件或将msado15.dll类型库导入到项目中以使用原始ADO API调用。后者将需要更多的经验!
SQL Server能够将自己暴露给Internet,尽管这会产生安全风险。仍然,想要访问它的人需要用户名和密码才能获得连接,您需要打开SQL Server使用的端口。但从技术上讲,要通过Internet使用ADO,您需要知道的是工作服务器的IP地址以及登录信息。但这是一个安全风险。因此,大多数开发人员不会将SQL Server暴露给数据库,而只是编写Web服务来包装您想要公开的特定数据库函数。
记录锁定是SQL Server将为您做的事情,如果您使用交易可以使其更加安全。
最后,您需要学习和阅读的内容在很大程度上取决于您希望在应用程序中执行的操作。因此,在开始编写代码之前,请先编写一个功能设计,以便概述您想要的内容以及您需要的内容。从本文档开始编写技术文档,以更准确地描述代码需要执行的操作。一旦你有了这个,你可以直接询问你需要的东西,但目前还不知道。