Python + MSSQL 連線爆炸區

從學寫程式開始最崩潰的前三名就是用程式連線資料庫,以及編碼…

今天拿 Python 連 MSSQL 第一次不意外地失敗了…
甚至不設帳密的連線也可以報個
“Login failed for user ‘\xe3\x83\xbeUWU\xe3\x82\x9e\xxx’.DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (127.0.0.1)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (127.0.0.1)\n”)
(其中 xxx 是我的本機使用者名稱)

後來才發現到:
Trusted_Connection 是設給是否要用 Windows 身分驗證用的…
(參考自 利用 Python 直接匯出資料庫 (MSSQL) 的資料 (Pandas ReadSQL) | YC’s Weekly Journal )

其他的還有
(‘42000’, ‘[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database “AAA” requested by the login. The login failed. (4060) (SQLDriverConnect); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database “AAA” requested by the login. The login failed. (4060)’)
(連線的資料庫名稱是 AAA)

…之類的

後來忽然想到,何不用 master 當資料庫連線看看?
這次沒有錯誤訊息了,改成不知道什麼東西的訊息:
<pyodbc.Connection object at 0x00000261D55E36A0>
嗯…這啥?

總之隱約覺得有成功,於是再加上 SELECT 1 配上印連線成功 or 失敗的結果
…! 成功!

測試結果,迷惑的是這種系統資料庫都能連,當初自建的資料庫通通失敗…(劃掉的是自建的,其他都是系統的全部成功)



請等待下一集…希望今天能搞懂…

Written with StackEdit.

Comments