[英]MS SQL SERVER, PHP, PDO, ODBC: Login failed for user
我正在嘗試使用字符串進行連接:
odbc:Driver={SQL Server Native Client 11.0};Server=(localdb)\v11.0;Database=test;uid=sa;password=123321;
結果:SQLSTATE [28000] SQLDriverConnect:18456 [Microsoft] [SQL Server Native Client 11.0] [SQL Server]用戶“ sa”的登錄失敗。
當我嘗試使用Windows ODBC數據源管理器進行連接時,連接成功。
可能是什么問題?
網絡用戶“ sa ”沒有訪問Microsoft SQL Server的權限。
為網絡用戶提供訪問Microsoft SQL Server的最佳方法是創建Windows組( 例如EGUSERS ),並在Microsoft SQL Server的“安全登錄名”上允許Windows組“服務器訪問”。
將所有需要訪問Microsoft SQL Server的網絡用戶放入Windows組(EGUSERS)。
檢查是否在MSSQL Server上設置了正確的身份驗證模式: https : //msdn.microsoft.com/zh-cn/library/ms188670.aspx
另外,您還有兩種方法可以通過使用PHP_PDO_ODBC擴展名通過PHP / PDO連接到MSSQL,該擴展名使用在連接字符串中給定的ODBC驅動程序,或者使用PHP_PDO_SQLSRV_xx_TS或PHP_PDO_SQLSRV_xx_NTS擴展名(僅在32位PHP中使用)! https:// www .microsoft.com / en-us / download / 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);
測試使用PHP_PDO_ODBC擴展名返回66條記錄的簡單查詢時,大約需要500毫秒(對於所有三個MSSQL ODBC驅動程序),但是當使用64bit(!)PHP_PDO_SQLSRV_TS時,則需要大約5000毫秒。 慢10倍! 尚未嘗試過32bit或NTS變體。 我的開發PC是使用WAMPx64 PHP 5.5.12的Windows 7 SP1,我使用了PHP_PDO_SQLSRV_55_TS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.