【发布时间】:2014-04-23 16:45:37
【问题描述】:
- Windows 7 Professional 上的 SQL Server 2012 Express。
- PHP 5.4
- IIS 7.5
我打开一个 PDO 连接:
$sqlconn = "sqlsvr:server=(local)\SQLEXPRESS;database=MyDb";
$pdo = new PDO( $sqlconn, $dbuser, $dbpass );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
然后我执行一个存储过程:
$query = $pdo->prepare( "EXEC $storedProc ?" );
$query->bindParam( 1, $value );
$query->execute();
$spVals = $query->fetchAll( PDO::FETCH_ASSOC );
一切正常,连接建立,我得到一个记录集。
我的客户也是如此,如果他从外部客户连接。但如果他使用终端连接,他就不会获得记录集。连接已打开,存储过程已找到但未执行。 唯一不同的是,终端与 SQL Server 不是同一个 windows 域的成员。
在 Sql Server 配置管理器中,用于网络配置的共享内存和 TCP/IP 已激活。 Sql Server 和 Sql Server Browser 服务正在运行。
为远程连接设置了 MSSQL。
看起来好像 $dbuser 无权通过终端执行存储过程。
但是为什么呢?
我不知道,如果您了解我的问题,请在需要时询问更多信息!
【问题讨论】:
标签: php sql-server pdo terminal remote-access