使用 PYMSSQL 通过 *** 从 SQL Server 检索数据
Posted
技术标签:
【中文标题】使用 PYMSSQL 通过 *** 从 SQL Server 检索数据【英文标题】:Retrieving data from SQL Server over *** with PYMSSQL 【发布时间】:2012-12-27 08:49:11 【问题描述】:所以,我正在尝试使用 pymssql 从我的 Linux 机器连接到 SQL Server 数据库。只能从我公司的专用网络内部访问该数据库。它被设置为接受 SQL Server 身份验证,并且在我的 Windows 机器上,当我登录到 *** 时,我能够连接和查询它(Cisco Anyconnect 是安装在 Windows 机器上的客户端)。
python 脚本在工作时插入互联网的 linux 机器上运行时可以正常工作。我还没有在我的 Windows 机器上尝试过(因为现在,我在那台机器上没有 python)。
在我家的 linux 机器上,我下载了 OpenConnect,它似乎可以很好地建立 *** 连接。当我在这台机器上运行我的脚本时,在 *** 上,我成功连接到数据库。如果我在脚本中使用的测试查询是创建表或操作数据库中的数据,那么它可以工作。但是,我无法检索任何数据,即,如果我运行选择查询,我会得到 []。
(另外,也许值得一提的是,在弄清楚如何在我的 linux 机器上安装 *** 客户端之前,我尝试做的第一件事(起初我在搞砸 Cisco 的东西,这是一场噩梦),是从我的私有网络中的 windows 机器 ssh 到我的家庭 linux 机器,同时将我的家庭 linux 机器上的端口转发到 SQL Server 机器上的 1433。然后而不是使用 pymsswl.connect() 连接到 SQL SERVER 机器,我连接到我的本地端口。实际上,在这种情况下,我观察到与通过 *** 相同的行为。在这种情况下,我无法取回数据,我并不感到特别惊讶,因为它超负荷了,我可以看到 SQL服务器不知道将数据发送到哪里......虽然我真的只是在那里推测......)
我还应该提到,当我在 Windows 机器上的 Cisco 文件夹中单击时,有一个“安全目录”,其中包含我不太了解的各种古怪之处。也许这些证书/指纹在起作用。
所以,我承认这里完全是菜鸟,并希望得到任何帮助。如果我说了一些毫无意义的话,或者如果有其他可能适用的信息,我会尽力澄清。
【问题讨论】:
【参考方案1】:您是否使用 SQL Server 身份验证登录?你是如何运行查询的? Sproc 具有隐含的权利,这意味着如果您使用无权访问它的表仍然可以工作,但执行简单的选择将拒绝访问,远射但谁知道。
在此链接中,Pinal Dave 谈到了类似的错误,并详细介绍了如何检查以确保实例已启动以及您应该尝试的许多其他故障排除步骤。 http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/
【讨论】:
以上是关于使用 PYMSSQL 通过 *** 从 SQL Server 检索数据的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数传递给`pymssql`中的`cursor.execute`?
Pymssql 可以与 MS SQL Server 建立安全连接 (SSL) 吗?
使用 pymssql 将文本文件批量插入 SQL Server