MS SQL SERVER,PHP,PDO,ODBC:用户登录失败(MS SQL SERVER, P

2019-08-17 01:23发布

我试图用字符串来连接:

odbc:Driver={SQL Server Native Client 11.0};Server=(localdb)\v11.0;Database=test;uid=sa;password=123321;

结果:SQLSTATE [28000]的SQLDriverConnect:18456 [微软] [SQL Server本机客户端11.0] [SQL服务器]用户登录失败 '山'。

当我尝试使用Windows ODBC数据源管理器来连接连接成功。

这个问题可能是什么?

Answer 1:

网络用户“ ”没有权限使用Microsoft SQL Server中。
提供网络用户访问到Microsoft SQL Server的最佳方式是创建一个Windows组( 例如EGUSERS),并允许微软在SQL Server中的安全登录Windows组服务器访问。
将需要访问到Microsoft SQL Server的Windows组(EGUSERS)所有的网络用户。



Answer 2:

检查是否有MSSQL Server上的权限认证模式设置: https://msdn.microsoft.com/en-us/library/ms188670.aspx

你也有两种方法连接通过PHP / PDO到MSSQL使用它使用在ConnectionString或使用PHP_PDO_SQLSRV_xx_TS或PHP_PDO_SQLSRV_xx_NTS扩展给出的ODBC驱动程序,你可以在这里找到PHP_PDO_ODBC扩展名(仅适用于32位PHP!) 的https:// WWW .microsoft.com / EN-US /下载/ details.aspx?ID = 20098或使用这里的64位非官方http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

使用PHP_PDO_SQLSRV_xx_(N)TS扩展时连接字符串:

$hostname='127.0.0.1';
$dbname='test';
$username='user';
$password='pw';
$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);

使用PHP_PDO_ODBC扩展连接字符串时:

//use any of these or check exact MSSQL ODBC drivername in "ODBC Data Source Administrator"
$mssqldriver = '{SQL Server}'; 
$mssqldriver = '{SQL Server Native Client 11.0}';
$mssqldriver = '{ODBC Driver 11 for SQL Server}';

$hostname='127.0.0.1';
$dbname='test';
$username='user';
$password='pw';
$dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password);

当测试其返回66条记录使用PHP_PDO_ODBC扩展了〜500毫秒(所有三个MSSQL ODBC驱动程序),但使用64位(!)PHP_PDO_SQLSRV_TS时花〜5000毫秒的简单查询。 慢10倍! 还没有试过的32位或NTS变种。 我的开发PC是使用WAMPx64 PHP 5.5.12的Windows 7 SP1和我用PHP_PDO_SQLSRV_55_TS



文章来源: MS SQL SERVER, PHP, PDO, ODBC: Login failed for user