PHP / Firebird DB - 无密码连接到DSN

时间:2017-06-28 10:57:46

标签: pdo odbc firebird password-protection dsn

一位朋友正在与一家公司合作,该公司的软件供应商允许ODBC / DSN连接,但拒绝提供用户名和密码。

是否可以在没有密码的情况下连接到ODBC / DSN?我从来没有这样做,所以我不知道该告诉他什么。我查看的所有示例,与PHP连接,都显示用户名和密码。

1 个答案:

答案 0 :(得分:2)

当通过自动检测到的当前Windows(Linux等)用户建立连接时,Firebird已经称之为“受信任的身份验证”#34;

然而,这并不是最常用的方案,并且在跟踪器上有很多错误报告。

此外,可以使用Firebird Embedded,它类似于SQLite,不是一个单独的进程,而只是程序用来读取数据库文件的DLL / SO库。在这种情况下,也不需要身份验证。

所以,总而言之:

  • 是的,理论上可以将Firebird服务器切换到受信任的身份验证,其中不需要显式的用户名和密码,您的情况可能就是其中之一。
  • 是的,有些应用程序非常满足于嵌入式库,而不是功能齐全的独立Firebird SQL Server,而且该模式根本没有身份验证。

但这些选择并非主流。对于典型连接,必须将用户名和密码显式提供给服务器。这是另一个问题,他们在哪里存储凭据,谁提供它们?它是您的应用程序或您的应用程序使用的库吗?

在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