Python - Pyodbc 连接错误
Python - Pyodbc Connection error
我正在尝试使用 Python3.4
连接到 SQL 服务器数据库
这是适合我的代码
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;Trusted_Connection=yes')
然后我使用 Windows 连接登录到我的管理工作室 - 数据库。
这是代码,它对我不起作用:
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;UID=DESKTOP-GDM2HQ17\sid;PWD=123')
请分享您对我哪里出错的想法。
有两个SQL Server Authentication modes:
1,通过 Windows 身份验证连接:
当用户通过 Windows 用户帐户连接时,SQL 服务器使用操作系统中的 Windows 主体令牌验证帐户名和密码。
2,通过 SQL 服务器身份验证连接:
当使用 SQL 服务器身份验证时,将在 SQL 服务器中创建不基于 Windows 用户帐户的登录。用户名和密码都是使用SQL服务器创建并存储在SQL服务器中。
您的第一个代码可以正常工作,因为它正在通过 Windows 身份验证进行连接。
您的第二个代码无法正常工作,因为它正在尝试查找存储在 SQL 服务器中的凭据(登录名和密码),但凭据不是在 SQL 服务器中创建的。
此外,您可以参考官方文档了解如何Change Server Authentication Mode。
希望对你有帮助。
DRIVER='{SQL 服务器}' 有效
下面的代码已经过测试.....
import pyodbc
con = pyodbc.connect('Driver={SQL Server};'
'Server=LAPTOP-PPDS6BPG;'
'Database=training;'
'Trusted_Connection=yes;')
cursor = con.cursor()
sql_query = 'SELECT * FROM Students'
cursor.execute(sql_query)
for row in cursor:
print(row)
这对我来说比我能找到的任何其他产品都好
import pyodbc
import pandas as pd
conn = pyodbc.connect('Driver={SQL Server};'
'Server=10.****;'
'Database=Ma**;'
'UID=sql**;'
'PWD=sql**;')
cursor = conn.cursor()
sql = """\
EXEC [dbo].[GetNewPayment] @Login=?, @PasswordMD5=?, @RevokeTimeFrom=?, @RevokeTimeTo=? Status=?
"""
params = ('a***', 'c2ca***', '2021-05-01','2021-05-02', '3')
cursor.execute(sql, params)
我正在尝试使用 Python3.4
连接到 SQL 服务器数据库这是适合我的代码
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;Trusted_Connection=yes')
然后我使用 Windows 连接登录到我的管理工作室 - 数据库。
这是代码,它对我不起作用:
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;UID=DESKTOP-GDM2HQ17\sid;PWD=123')
请分享您对我哪里出错的想法。
有两个SQL Server Authentication modes:
1,通过 Windows 身份验证连接:
当用户通过 Windows 用户帐户连接时,SQL 服务器使用操作系统中的 Windows 主体令牌验证帐户名和密码。
2,通过 SQL 服务器身份验证连接:
当使用 SQL 服务器身份验证时,将在 SQL 服务器中创建不基于 Windows 用户帐户的登录。用户名和密码都是使用SQL服务器创建并存储在SQL服务器中。
您的第一个代码可以正常工作,因为它正在通过 Windows 身份验证进行连接。
您的第二个代码无法正常工作,因为它正在尝试查找存储在 SQL 服务器中的凭据(登录名和密码),但凭据不是在 SQL 服务器中创建的。
此外,您可以参考官方文档了解如何Change Server Authentication Mode。 希望对你有帮助。
DRIVER='{SQL 服务器}' 有效
下面的代码已经过测试.....
import pyodbc
con = pyodbc.connect('Driver={SQL Server};'
'Server=LAPTOP-PPDS6BPG;'
'Database=training;'
'Trusted_Connection=yes;')
cursor = con.cursor()
sql_query = 'SELECT * FROM Students'
cursor.execute(sql_query)
for row in cursor:
print(row)
这对我来说比我能找到的任何其他产品都好
import pyodbc
import pandas as pd
conn = pyodbc.connect('Driver={SQL Server};'
'Server=10.****;'
'Database=Ma**;'
'UID=sql**;'
'PWD=sql**;')
cursor = conn.cursor()
sql = """\
EXEC [dbo].[GetNewPayment] @Login=?, @PasswordMD5=?, @RevokeTimeFrom=?, @RevokeTimeTo=? Status=?
"""
params = ('a***', 'c2ca***', '2021-05-01','2021-05-02', '3')
cursor.execute(sql, params)