暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

连接池和认证

淮海路小佩奇 2023-06-27
146


在 ODBC 中,驱动程序管理器控制连接池。

当使用认证时,应用程序编程人员必须意识到连接池的影响。驱动程序管理器不控制其

连接何时置于池中,或者何时从池中拉出。如果应用程序不了解用户就连接或断开连接,

则连接池的性能优势得以保持,用户不会收到任何意外的认证质询。如果应用程序未使

用户意识到他们正在重建连接,则仍没有认证问题,因为驱动程序管理器与服务器之间

的连接从未关闭。

连接函数

可随同认证模块使用任何建立连接的 ODBC 函数,SQLConnect()、SQLDriverConnect()

或 SQLBrowseConnect()。

当使用这些函数时,请考虑下列事项:

SQLConnect() 函数

SQLConnect() 函数的 DriverCompletion 参数可采用下列值

SQL_DRIVER_PROMPT

SQL_DRIVER_COMPLETE

SQL_DRIVER_COMPLETE_REQUIRED

SQL_DRIVER_NOPROMPT

如果预料到有认证挑战,则推荐您使用 SQL_DRIVER_NOPROMPT。使用其他值可能

导致用户面对认证信息的多个请求。

SQLBrowseConnect() 函数

设计 SQLBrowseConnect() 函数旨在反复使用,驱动程序为应用程序提供关于如何完成

连接字符串的指导,且应用程序提示用户所需的值。这可导致用户在连接字符串完成与

认证之间面对多个提示。

此外,作为连接字符串完成进程的一部分,驱动程序通常向应用程序提供数据库的选择。

然而,在用户通过身份验证之后,驱动程序才能为数据库的列表查询服务器。根据应用

程序逻辑,它是在原始的连接字符串中提供数据库名称,还是打算从认证服务器接受质

询,当服务器使用认证时,可能无法使用 SQLBrowseConnect()。

第三方应用程序或中间代码

当使用认证时,应由应用程序处理来自认证服务器的任何质询。

要处理质询,应用程序编程人员必须能够向驱动程序注册回调函数。由于在 ODBC 标准

中未定义用来完成此任务的属性,因此,使用的属性为 GBase 8s 扩展。

以 Microsoft™ 的 ADO 层编写的许多应用程序从开发人员抽取 ODBC 调用。大多数

Visual Basic 应用程序都用 ADO 层编写。这些应用程序和第三方应用程序通常不知道

GBase 8s 扩展,且不能处理身份验证质询。

Windows™ 上的 ODBC Data Source Administrator 也属于第三方应用程序这一类。当配置

UNIX™ 数据源时,不是所有特性都可用。例如,如果收到质询,则 Apply and Test

Connection 按钮和 User Server Database Locale 切换不起作用,因为那些特性需要连接到

服务器的能力。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论