2017-04-25 92 views
0

時,我跑使用MSSQL PDO無法登錄獲取用戶登錄失敗 'DBO'

EXEC sp_helplogins @LoginNamePattern='mmanlapig\martin' 

我得到這個微軟SQL Server Management Studio中:

LoginName   DBName UserName UserOrAlias 
1 mmanlapig\martin homis db_owner MemberOf 
2 mmanlapig\martin homis dbo   User  

然後在我的代碼,我有:

define('DBHOST', 'localhost\SQLEXPRESS'); 
define('DBNAME', 'homis'); 
define('DBUSER', 'dbo'); 
define('DBPASS', ''); 
$dbname = "`" . str_replace("`", "``", DBNAME) . "`"; 
$dbh1 = new PDO("odbc:Driver={SQL Server};Server=" . DBHOST . ";Database=$dbname;", DBUSER, DBPASS); 

當我運行這段代碼

Select sp.name as LoginName, sp.type_desc as LoginType, 
    dp.name as DBUser, dp.type_desc as UserType 
from sys.server_principals sp 
join sys.database_principals dp on dp.sid = sp.sid 
where sp.name = 'mmanlapig\martin'; 

我得到

LoginName   LoginType  DBUser UserType 
1 mmanlapig\martin WINDOWS_LOGIN dbo  WINDOWS_USER 
  1. 爲什麼我收到錯誤,說我在連接到數據庫時,我所有的登錄證書就可以了失敗。
  2. 什麼是我需要用來連接數據庫的正確用戶名密碼?

採取這些步驟從here

的問題是,該服務器只設置爲「Windows身份驗證模式」。爲了解決這個問題我

  1. 右鍵單擊服務器 - >屬性
  2. 點擊「安全」,在「服務器屬性」對話框的左側
  3. 更改服務器身份驗證「SQL Server和Windows身份驗證模式」
  4. 單擊「確定」
  5. 重新啓動相關服務。起初我忘了重新啓動服務,所以我仍然遇到錯誤,但現在我可以連接而沒有問題。

還是同樣的問題

+0

不要使用SQL服務器的反引號。其逃避規則完全不同。 –

回答

相關問題