一位朋友正在与一家公司合作,该公司的软件供应商允许ODBC / DSN连接,但拒绝提供用户名和密码。
是否可以在没有密码的情况下连接到ODBC / DSN?我从来没有这样做,所以我不知道该告诉他什么。我查看的所有示例,与PHP连接,都显示用户名和密码。
答案 0 :(得分:2)
当通过自动检测到的当前Windows(Linux等)用户建立连接时,Firebird已经称之为“受信任的身份验证”#34;
然而,这并不是最常用的方案,并且在跟踪器上有很多错误报告。
此外,可以使用Firebird Embedded,它类似于SQLite,不是一个单独的进程,而只是程序用来读取数据库文件的DLL / SO库。在这种情况下,也不需要身份验证。
所以,总而言之:
但这些选择并非主流。对于典型连接,必须将用户名和密码显式提供给服务器。这是另一个问题,他们在哪里存储凭据,谁提供它们?它是您的应用程序或您的应用程序使用的库吗?
在PHP示例中,您看到名称/密码是由PHP代码显式提供的,这是编写应用程序的典型方案。但我不熟悉ODBC。 ODBC中是否可以将凭据记录到DSN属性中?那么应用程序不必提供它们,让ODBC库隐式地从它的设置中传递它们?我确信BDE可以做到这一点,你可以在BDE Alias属性中保存登录/密码,然后应用程序可以使用该别名而无需自己提供凭据。检查ODBC中的DSN属性,我想也许已经输入了用户名和密码。
因此您的问题是否可以在没有密码的情况下连接到ODBC / DSN?没有明确的答案。 不可以在没有任何密码的情况下连接常规服务器,但 可以设置环境,您的应用程序不会明确使用密码,因为那些是在应用程序下面的ODBC级别中输入in-before。
PS。对于记录,Firebird凭据也可以保存为环境变量,但那些只是Firebird命令行实用程序确认它们。 https://www.firebirdsql.org/manual/isql-environment-variables.html