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
- 爲什麼我收到錯誤,說我在連接到數據庫時,我所有的登錄證書就可以了失敗。
- 什麼是我需要用來連接數據庫的正確用戶名密碼?
採取這些步驟從here
的問題是,該服務器只設置爲「Windows身份驗證模式」。爲了解決這個問題我
- 右鍵單擊服務器 - >屬性
- 點擊「安全」,在「服務器屬性」對話框的左側
- 更改服務器身份驗證「SQL Server和Windows身份驗證模式」
- 單擊「確定」
- 重新啓動相關服務。起初我忘了重新啓動服務,所以我仍然遇到錯誤,但現在我可以連接而沒有問題。
還是同樣的問題
不要使用SQL服務器的反引號。其逃避規則完全不同。 –