真的只是一个新问题。在类似公司企业系统的情况下,最终用户正在对数据库执行连续读取和写入,在大多数情况下,似乎每个工作站都不需要正在使用的数据库的驱动程序。凭据正在通过软件传递到数据库 IP 和端口,我假设当一个新用户被添加到软件中时,它正在将它们添加到数据库中,并在此时分配他们的读/写权限。用户将他们的登录信息提供给软件,该软件用作他们对数据库进行读/写的凭据。
但是,如果我想从第三方软件(Excel 或其他软件)访问数据库,那么我确实需要数据库的驱动程序。我想我不确定这是为什么,并且想知道是否有人可以向我解释。
举个例子,我曾经工作过的一家公司使用过 IBM DB2。我们有一个以 DB2 作为数据库的企业系统。使用围绕它的软件,我不记得曾经需要它的驱动程序。当我们开始在 Excel 中为其编写自定义报告时,我需要 ODBC 驱动程序,就像任何其他需要 Excel -> DB2 连接的工作站一样。
这完全取决于应用程序及其设计方式。
两种主要情况:
客户端应用程序连接到应用程序服务器,应用程序服务器连接到数据库。
在这种情况下,客户端不需要数据库驱动程序。客户端应用程序从不直接与数据库对话,而仅调用服务器端软件。在这种情况下,客户端应用程序可以是 Web 浏览器或自定义应用程序(大或小)- 无关紧要。应用服务器软件隐藏了细节,最终用户工作站甚至不知道后端使用的是什么类型的数据库(如果有的话!)。
这就是大多数网络的工作方式。
在这里,最终用户不一定需要数据库的凭据。有些应用程序需要它(它们基本上将身份验证委托给数据库),另一方面,有些应用程序自己处理身份验证。在这种情况下,服务器端应用程序软件将拥有数据库的凭据,但最终用户不会。服务器端应用程序通常会使用数据库以自己的格式存储标识符和权限,并基于此允许/拒绝操作。
在这种情况下,最终用户不需要网络访问数据库服务器,只需要访问应用程序服务器。
客户端应用程序直接连接到数据库
通常在这种情况下,客户端应用程序相当大(对于“企业”软件)。所有应用程序处理都在客户端软件和/或数据库中的存储过程中完成,客户端直接与数据库交互。
在这里,您需要客户端的驱动程序。(但这可能不需要单独安装驱动程序。例如,Java 应用程序可以捆绑 JDBC 驱动程序并直接使用它们。)
最终用户需要在数据库中拥有凭据,并具有适当的权限(我完全忽略了共享帐户的一些恐怖之处)。他们还需要通过代理、VPN 或其他方式直接访问数据库服务器上的适当端口。
(并且有这两种方法的混合体,一些工作通过应用服务器完成,一些直接在数据库上完成。不过我还没有看到很多。)
根据我的经验,目前第一种情况更为常见,浏览器已成为最常用的客户端软件。