【发布时间】:2015-11-11 17:50:38
【问题描述】:
我正在尝试使用 PHP 通过 Windows 身份验证连接到 ODBC 数据源。我可以很好地连接到 SQL Server 中的服务器,所以我知道它正在运行。当我尝试运行命令时
$link = odbc_connect("my_odbc","","");
我得到错误:
“警告:odbc_connect():SQL 错误:
[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]
用户 '' 登录失败。,C 中 SQLConnect 中的 SQL 状态 28000: \用户...”
我试过了:
$link = odbc_connect("Driver={ODBC Driver 11 for SQL Server};
Server='my_odbc';Integrated Security=SSPI","","");
返回的消息:
警告:odbc_connect():SQL 错误:
[Microsoft][ODBC Driver 11 for SQL Server]
命名管道提供程序:无法打开与 SQL Server 的连接 [53]。 , SQLConnect 中的 SQL 状态 08001 在 C:\Users..."
不知道我做错了什么。
my_odbc是另一台计算机上的 SQL Server (2008)。我没有该数据库的管理员权限,因此我无法对此进行任何更改(例如启用 SQL Server 身份验证)。我正在运行 Windows 7 并使用 PHP 版本 5.6.12
phpinfo()表示启用了 ODBC 支持以及pdo_sqlsrv支持
【问题讨论】:
-
连接字符串中的 Integrated Security=SSPI 告诉 ODBC 驱动程序将当前用户用于正在运行的进程。可能是连接字符串中的特定用户 ID 和密码。
-
您确定您的代码使用的身份被授予连接到 SQL Server 的权限吗? blogs.msdn.com/b/brian_swan/archive/2010/02/10/…
-
为什么使用 ODBC 而不是使用 SQL Native 驱动程序?例如使用 sqlsrv_connect() - msdn.microsoft.com/en-us/library/…
-
错误提示“用户登录失败”并且您没有传递用户名或密码。你不应该用你的 SQL Server 用户名/密码做
$link = odbc_connect("my_odbc", "your_user", "your_pass");吗?
标签: sql-server sql-server-2008 php windows odbc