Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接到需要通过代理进行Windows身份验证的防火墙MS-SQL server?_Php_Sql Server_Proxy_Windows Authentication_Vpn - Fatal编程技术网

Php 连接到需要通过代理进行Windows身份验证的防火墙MS-SQL server?

Php 连接到需要通过代理进行Windows身份验证的防火墙MS-SQL server?,php,sql-server,proxy,windows-authentication,vpn,Php,Sql Server,Proxy,Windows Authentication,Vpn,因此,我需要从Unix服务器通过Windows身份验证连接到mssql服务器。以下是障碍: db管理员创建了一个服务帐户,但将其设置为仅Windows Auth,这意味着我无法将用户名和密码直接传递给服务器进行连接 管理员还将我的主机服务器添加到防火墙中,以便它只接受来自主机的请求 我的主机服务器通过freetds/sybase dblib启用了mssql,但仍设置了默认的“安全连接:关闭” 我在我的个人电脑上也有类似的设置,但是有安全连接,但是我不能用那种方式连接,因为我被防火墙拦截了 所以我

因此,我需要从Unix服务器通过Windows身份验证连接到mssql服务器。以下是障碍:

  • db管理员创建了一个服务帐户,但将其设置为仅Windows Auth,这意味着我无法将用户名和密码直接传递给服务器进行连接

  • 管理员还将我的主机服务器添加到防火墙中,以便它只接受来自主机的请求

  • 我的主机服务器通过freetds/sybase dblib启用了mssql,但仍设置了默认的“安全连接:关闭”

  • 我在我的个人电脑上也有类似的设置,但是有安全连接,但是我不能用那种方式连接,因为我被防火墙拦截了

  • 所以我想知道是否有可能在我的主机上设置一个代理,这样我就可以使用我的本地freeTDS库在我的个人机器上启动连接,但是请求会传递给主机,这会(在我的梦想世界中)不需要打开安全连接,只需传递请求,使其来自我的非防火墙主机,但使用正确的身份验证方法

    如果有人不熟悉Windows身份验证的工作原理,那么它是一种Kerberos身份验证,客户端机器向远程服务器发出请求,这样就永远不会发送凭据(因此中间的人也不会泄露凭据)。因此,我非常怀疑这是否可以实现,因为在某种程度上,我的主机必须完成实际工作。但我想我会问,因为我不完全清楚更深层的机制,因为我真的想让这一切发生

    我想另一种看待它的方式是我想将我的主机用作一种VPN


    此外,我正在与我的主机管理员一起寻找一个更长期的解决方案,但我需要尽快查看数据库,以便在问题得到解决时,我可以进行一些工作。

    为什么不尝试SSH端口转发?即,连接到主机服务器,并告诉它将本地端口转发到sql server。然后使用localhost:port在本地计算机上进行连接,连接将通过ssh通过主机服务器进行隧道传输

    如果您的本地计算机是Windows计算机,则只需下载PuTTY并按照以下说明设置端口转发:


    当然,问题是你的Windows凭据是否会通过,但理论上这应该是可行的:p.

    我实际上意识到我可以选择VPN到同一主域(这意味着我不会与主机位于同一子域,而是位于主域),并且能够建立初始连接并查看freeTDS发送的登录数据包。即使在VPN上,它也将我的主机名显示为本地主机。经过多次修改和尝试后,远程服务器甚至在发送请求包之前就开始终止成功的连接,所以我太紧张了,不敢欺骗它。你的想法应该行得通,但我猜也会产生同样的结果。谢谢你的主意。