python 与 SQL 服务器的连接
python connection with SQL server
我使用 pyodbc
和 pypyodbc
python 包连接到 SQL 服务器。
司机使用了这些中的任何一个['SQL Server', 'SQL Server Native Client 10.0', 'ODBC Driver 11 for SQL Server', 'ODBC Driver 13 for SQL Server']
。
连接字符串:
connection = pyodbc.connect('DRIVER={SQL Server};'
'Server=aaa.database.windows.net;'
'DATABASE=DB_NAME;'
'UID=User_name;'
'PWD=password')
现在我收到类似
的错误消息
DatabaseError: (u'28000', u"[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user
但是我可以通过SQL服务器管理工作室连接到服务器。
它基于 SQL 服务器身份验证,而不是 Windows 身份验证。
这是关于 python 包和 driver 问题还是数据库问题???如何解决?
问题不是驱动问题,您可以看到错误消息是DatabaseError: Login failed for user
,这意味着如果用户尝试使用无法验证的凭据登录,就会出现此问题。我怀疑您是使用 windows 身份验证登录的,如果是这样,请改用 Trusted_Connection=yes
:
connection = pyodbc.connect('DRIVER={SQL Server};Server=aaa.database.windows.net;DATABASE=DB_NAME;Trusted_Connection=yes')
SQL Server Authentication modes
的区别请参考。
我看到您的脚本中没有定义 port
。
使用 pyodbc ${DBName} ${DBUser} ${DBPass} ${DBHost} ${DBPort}
连接到服务器的一般方法,其中 DBName
是您的数据库名称,DBUser
是用于连接它的用户名,DBPass
是密码,DBHost
是你数据库的URL,DBPort
是你用来连接数据库的端口。
我使用 MS SQL,所以我的端口是 1433
,你的可能不同。
我今天刚遇到这个问题,然后就解决了。
我认为问题出在您的连接字符串中的驱动程序定义。你可以试试下面的方法。
connection = pyodbc.connect('DRIVER={SQL Server Native Client 10.0}; Server=aaa.database.windows.net; DATABASE=DB_NAME; UID=User_name; PWD=password')
您可以在密码
后的连接字符串中添加 Trusted_Connection=NO;
我应用了您的连接字符串并使用我的服务器连接详细信息对其进行了更新,并且工作正常。
您确定您传递的是正确的用户名和密码吗?
登录失败表示连接建立成功,但认证未通过
我使用 pyodbc
和 pypyodbc
python 包连接到 SQL 服务器。
司机使用了这些中的任何一个['SQL Server', 'SQL Server Native Client 10.0', 'ODBC Driver 11 for SQL Server', 'ODBC Driver 13 for SQL Server']
。
连接字符串:
connection = pyodbc.connect('DRIVER={SQL Server};'
'Server=aaa.database.windows.net;'
'DATABASE=DB_NAME;'
'UID=User_name;'
'PWD=password')
现在我收到类似
的错误消息DatabaseError: (u'28000', u"[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user
但是我可以通过SQL服务器管理工作室连接到服务器。
它基于 SQL 服务器身份验证,而不是 Windows 身份验证。
这是关于 python 包和 driver 问题还是数据库问题???如何解决?
问题不是驱动问题,您可以看到错误消息是DatabaseError: Login failed for user
,这意味着如果用户尝试使用无法验证的凭据登录,就会出现此问题。我怀疑您是使用 windows 身份验证登录的,如果是这样,请改用 Trusted_Connection=yes
:
connection = pyodbc.connect('DRIVER={SQL Server};Server=aaa.database.windows.net;DATABASE=DB_NAME;Trusted_Connection=yes')
SQL Server Authentication modes
的区别请参考
我看到您的脚本中没有定义 port
。
使用 pyodbc ${DBName} ${DBUser} ${DBPass} ${DBHost} ${DBPort}
连接到服务器的一般方法,其中 DBName
是您的数据库名称,DBUser
是用于连接它的用户名,DBPass
是密码,DBHost
是你数据库的URL,DBPort
是你用来连接数据库的端口。
我使用 MS SQL,所以我的端口是 1433
,你的可能不同。
我今天刚遇到这个问题,然后就解决了。
我认为问题出在您的连接字符串中的驱动程序定义。你可以试试下面的方法。
connection = pyodbc.connect('DRIVER={SQL Server Native Client 10.0}; Server=aaa.database.windows.net; DATABASE=DB_NAME; UID=User_name; PWD=password')
您可以在密码
后的连接字符串中添加Trusted_Connection=NO;
我应用了您的连接字符串并使用我的服务器连接详细信息对其进行了更新,并且工作正常。 您确定您传递的是正确的用户名和密码吗? 登录失败表示连接建立成功,但认证未通过