0

我有一个问题:我连接到一台服务器上的数据库(那个应用程序正在运行)并且它工作正常。但是如果我想连接到其他服务器上的其他数据库,它就不起作用 - 弹出 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 =是的

任何想法可能是什么原因?我为此苦苦挣扎了很长时间,以至于我已经开始访问相同的地方并不断地询问相同的问题,但仍然没有答案。

感谢芽的每一个提示!

4

0 回答 0