Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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通过VPN连接到不同网络上的数据库_Php_Sql Server_Perl_Server Side_Vpn - Fatal编程技术网

通过PHP通过VPN连接到不同网络上的数据库

通过PHP通过VPN连接到不同网络上的数据库,php,sql-server,perl,server-side,vpn,Php,Sql Server,Perl,Server Side,Vpn,我们目前有一个过程,用户使用Cisco VPN客户端建立到远程服务器的安全隧道。然后,他们将远程桌面接入远程网络上的一台机器。在远程计算机上,他们启动SQL Server 2008 Enterprise manager,运行生成CSV文件的查询。然后手动将文件传输回其本地计算机 此过程每月只需执行一次,即可从远程机器中提取此CSV报告 传输是IPSec/UDP 我很难通过脚本找到任何帮助。这可能吗?如果不是通过PHP,可能是通过perl或任何服务器端脚本 谢谢。Perl能够做到这一点 尝试将此问

我们目前有一个过程,用户使用Cisco VPN客户端建立到远程服务器的安全隧道。然后,他们将远程桌面接入远程网络上的一台机器。在远程计算机上,他们启动SQL Server 2008 Enterprise manager,运行生成CSV文件的查询。然后手动将文件传输回其本地计算机

此过程每月只需执行一次,即可从远程机器中提取此CSV报告

传输是IPSec/UDP

我很难通过脚本找到任何帮助。这可能吗?如果不是通过PHP,可能是通过perl或任何服务器端脚本


谢谢。

Perl能够做到这一点

尝试将此问题分成两部分:

1生成一个CSV文件。 2将此CSV文件移出

第1部分:

您可以使用Perl连接到SQL server,运行查询并生成CSV文件

使用ODBC和DBI进行连接:

用于生成有效的CSV文件

第2部分:

2.1:您可以设置一个简单的https Web服务器,仅为该CSV文件提供服务。如果需要,您可以在发送之前加密此文件

您可以使用Putty设置SSH Tunel以进一步保护传输:

有了这个,一切都会变得简单:

2.2:您可以在计算机上设置ssh服务器,并使用Putty中的scp.exe复制文件


如果这是你控制的机器,听起来像吗?为什么不做相反的事情,在SQL Server上设置一个作业,让它推送到您可以访问它的地方呢。使用OpenSwan设置一个隧道,然后使用一个简单的PHP代码段访问数据库,这可能是完全可能的,但现在有点超出了这个答案的范围。@hank是的,我们确实控制这台机器,但不是它所在的网络。这是个好主意,我没有想到把数据推给我,而不是拉出来。我想听更多关于这部电影的故事。我要读点书。
use HTTP::Daemon::SSL;

my $server = HTTP::Server::Brick->new(
      port => 8889,
      daemon_class => 'HTTP::Daemon::SSL',
      directory_indexing => 1,
      daemon_args  => [
         SSL_key_file  => 'my_ssl_key.pem',
         SSL_cert_file => 'my_ssl_cert.pem',
      ],
    );
$server->mount( '/csvfile' => {
    path => 'C:/path/to/your/csv/file',
    wildcard => 1,
}); 
# start accepting requests (won't return unless/until process
# receives a HUP signal)
$server->start;