簡體   English   中英

嘗試使用 pyodbc 使用 python 連接到 sql server 時出錯

[英]Error while trying to connect to sql server with python using pyodbc

我正在嘗試從另一台計算機連接到 sql server。 我正在使用以下代碼。 odbc 驅動程序已安裝,pyodbc 也已安裝。

import pyodbc 

server = 'SERVER'
database = 'DBNAME' 
username = 'SA' 
password = 'SQLPWD' 
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

但是我收到以下錯誤。

Traceback (most recent call last):
File "test.py", line 7, in <module>
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL 
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
pyodbc.InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL 
Server]Login failed for user 'SA'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC 
Driver 17 for SQL Server][SQL Server]Login failed for user 'SA'. (18456)")

我不確定我哪里出錯了,舊的問題也沒有多大幫助。 我是 Python 的新手。

問題可能與以下有關:

  • SA 訪問已禁用( 參考
  • 錯誤的服務器身份驗證選擇( 參考
  • SQL Server 未打開遠程訪問 ( REFERENCE )

您可以使用SSMS來管理您的服務器配置。

重要提示:正如@Larnu 所建議的,使用sa用戶進行遠程訪問不是一個好主意,創建對數據庫和表具有有限訪問權限的新用戶是管理服務器並保護它的更好方法。 這里以更好地理解。

SA 訪問已禁用

要啟用它,您必須執行以下操作:

  • 使用 SSMS 連接到您的服務器(使用Windows 身份驗證

    聯系

  • 打開Security --> Logins Section 並雙擊用戶sa

    配置文件

  • 打開頁面General輸入密碼確認密碼,進入頁面狀態並將登錄設置為啟用

    一般狀態變化

錯誤的服務器身份驗證選擇

  • 在對象資源管理器中右鍵單擊服務器實例並打開屬性

    服務器道具

  • 打開頁面安全並檢查選項SQL Server 和 Windows 身份驗證模式

    安全類型

SQL Server 未打開遠程訪問

  • 在對象資源管理器中右鍵單擊服務器實例並打開屬性

  • 打開頁面連接並選中允許遠程連接到此服務器

    遠程檢查

  • 打開開始菜單並搜索SQL Server 配置管理器

  • SQL Server 網絡配置下選擇協議

  • 雙擊TCP/IP並滾動到底部,將TCP 端口設置為1433

  • SQL Server 配置管理器的左窗格中,單擊SQL Server Services ,右鍵單擊SQL Server<instance_name> ,然后單擊重新啟動。

現在問題應該解決了,如果沒有,請查看參考的為數據庫引擎訪問配置Windows防火牆部分中的如何向Windows防火牆添加規則

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM