我有一个问题:我连接到一台服务器上的数据库(那个应用程序正在运行)并且它工作正常。但是如果我想连接到其他服务器上的其他数据库,它就不起作用 - 弹出 500 错误。即使连接到数据库似乎也存在问题(已经完成了一些测试)。我正在使用 SQL Server 2012,但不知道下一步该做什么。
一些信息:
服务器无法连接到互联网,所以每次安装都是一个痛苦的过程
在第一个我的网络应用程序正在运行
在第二台服务器上,我什么都没有——没有 python,没有烧瓶,没有 anaconda。只有我想要的 DB 和 SQL Server 2012。
已在第二台服务器上启用 Windows 身份验证
在普通计算机上作为运行程序,一切正常
甚至可以使用两个连接到两个不同的服务器吗?我是否必须在第二台服务器上安装 python 和 pyodbc 才能使其工作?
下面我显示代码片段:
conn = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
'Server=whatever1;'
'Database=whatever2;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute("SELECT column1, column2 FROM dbo.database1")
kursor = cursor.fetchall()
for row1 in kursor:
...
cursor.close()
conn2 = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
'Server=whatever3;'
'Database=whatever4;'
'Trusted_Connection=yes;')
cursor = conn2.cursor()
cursor.execute("SELECT column1 FROM dbo.database2")
"""
sth = cursor.fetchone()
...
cursor.close()
conn.close()
conn2.close()
尝试了很多,没有任何帮助。衷心感谢您的提示!
编辑
我想我已经尝试了所有想到的东西,并访问了每一个可能的网站,我认为它在某个地方有解决方案。自从我写了这篇文章,我发现了一些事情:
问题肯定出在与 2 号服务器的连接上,因为我发现了获取错误日志的可能性,并且错误有“用户 'Domain\Server$' 登录失败”,所以这是肯定的
日志中的登录名不存在于登录名中的安全选项卡中,我不知道它属于哪个,所以我不知道谁应该获得适当的权限以及如何做到这一点
在第二台服务器上的 ms sql server 的日志中,我找到了原因:找不到与提供的名称匹配的登录名。
两者都启用了 Windows 身份验证,而且 - 当我运行一个连接到 SQL Server(第二个)的程序并且它在第一台服务器(应用程序运行的地方)上运行时,它运行良好并且没有错误,使用trusted_connection =是的
任何想法可能是什么原因?我为此苦苦挣扎了很长时间,以至于我已经开始访问相同的地方并不断地询问相同的问题,但仍然没有答案。
感谢芽的每一个提示!