通过Internet访问MS SQL Server数据库的过程是什么,该数据库位于我的客户端

时间:2017-08-17 03:40:57

标签: sql jdbc sql-server-2008-r2

我在我的客户端位置安装了MS SQL Server,我需要将数据库记录提取到存储在我所在位置的服务器中,任何人都建议我如何通过使用ip地址通过Internet访问SQL Server数据库。我将使用JDBC从数据库中检索数据。

2 个答案:

答案 0 :(得分:2)

为了建立成功的远程连接,需要通过Window Firewall设置适当的端口。在SQL Server中有两种类型的实例。第一个是默认实例,第二个是命名实例。要连接到数据库引擎的默认实例或作为计算机上安装的唯一实例的命名实例,TCP端口1433是您需要指定的唯一端口。

但是如果您的计算机上安装了多个名称实例,要与其中一个连接,我们必须提供与相应实例名称对应的端口号。默认情况下,命名实例使用动态端口,这意味着每次数据库引擎启动时都会分配新的端口号。因此,很难配置Windows防火墙以启用访问。

为了解决此问题,有一个SQL Browser服务,它提供与命名实例对应的TCP端口号。 SQL浏览器服务使用UDP端口1434.现在我们遇到了与远程连接有关的基本问题,让我们继续安装程序。

启用TCP / IP协议

第一步是在SQL Server服务上启用TCP / IP协议。在Microsoft SQL Server文件夹下的Configuration Tools文件夹中打开SQL Server配置管理器:

enter image description here

从“SQL Server网络配置”节点中,选择相应SQL Server的“协议”项。在详细信息窗格中,右键单击TCP / IP项,然后选择“启用”选项:

enter image description here

在此步骤之后会弹出警告框,通知我们在下次启动服务之前所做的更改不会生效。

enter image description here

要使更改生效,请从控制台窗格中选择SQL Server服务,然后在详细信息窗格中右键单击SQL Server(SQLEXPRESS)数据库引擎实例,然后单击“重新启动”选项:

enter image description here

现在服务启动时启用了TCP / IP,但在配置Windows防火墙之前仍然无法远程连接。

配置Windows防火墙 从“控制面板”中选择“Windows防火墙”,然后单击“高级”设置或在“开始”菜单中键入搜索程序和文件中的wf.msc:

enter image description here

  1. 入站规则:您可以允许或阻止流量尝试访问符合规则中某些条件的计算机。默认情况下,入站流量被阻止,为了允许流量访问计算机,您需要创建入站规则。
  2. 出站规则:您可以允许或阻止来自指定计算机创建规则的流量。默认情况下,允许出站流量,因此您需要创建阻止出站流量的规则。
  3. 在具有高级安全性的Windows防火墙中,单击左窗格中的“入站规则”,右键单击“入站规则”并选择“新建规则”,或者从“操作”窗格中单击“新建规则”:

    enter image description here

    您将点击它,这取决于您。在这两种情况下,都会出现“新建入站规则向导”。在Rule Type下,选择Port并单击Next按钮:

    enter image description here

    在协议和端口中,您可以选择几个选项,具体取决于您选择的协议类型。

    如果您想知道可以从此链接找到的TCP和UDP协议之间的区别。

    正如我们在本文开头所提到的,TCP用于默认实例,而命名实例if是机器上安装的唯一实例,默认端口是1433.

    所有本地端口:规则适用于所选协议的所有端口。 特定本地端口:在文本框中,指定规则适用的端口或端口集。 对于此示例,请选择UDP协议,然后在特定本地端口中输入端口号1434.要继续设置SQL Browser服务,请单击“下一步”按钮:

    enter image description here

    1. 允许连接:包括所有安全且不安全的连接。
    2. 如果安全,则允许连接:如果通过安全通道进行连接,则仅包括连接。
    3. 阻止连接:阻止所有连接安全且不安全。
    4. 在Action对话框中,选择Allow the connection并单击Next按钮:

      enter image description here

      域:仅当计算机连接到域时才应用该设置。 专用:当计算机连接到标识为专用网络的网络时,将应用此设置。 公共:当计算机连接到不受信任的公共网络时应用该设置。

      在“配置文件”对话框中,选择所有三个配置文件,然后单击“下一步”:

      enter image description here

      在此步骤中,为规则指定名称,然后单击“完成”。

      注意:当我们提供规则的名称时,请写下一些您以后可以理解的描述性名称,当您需要在入站规则列表中查找或编辑时。

      enter image description here

      现在为数据库引擎实例创建一个允许规则。

      转到新规则,然后从规则类型中选择自定义规则:

      enter image description here

      在“服务”下的“程序”中,单击“自定义”按钮:

      enter image description here

      从“应用于此服务”下的“自定义服务设置”中选择数据库引擎实例服务,然后单击“确定”按钮:enter image description here

      然后单击Next到Name对话框,给规则命名并单击Finish: enter image description here

      现在,当设置了所有规则时,您就可以连接到远程SQL Server了。

      启动SQL Server,在服务器名称的对话框窗口中输入要连接的实例的名称。从“身份验证”下拉框中,选择“SQL Server身份验证”,然后在“登录”和“密码”字段中输入您的凭据,然后单击“连接”按钮。

答案 1 :(得分:1)

您可以找到有关如何通过JDBC here对SQL执行conn字符串的Microsoft文档,但它基本上等于

function prnEmailList($prnID)
    {
        $q = $this->db->query("SELECT pm.* , prm.*,e.* from  principal_master pm ,principal prm,email e where pm.prnID=e.prnID and prm.prID= pm.prID and e.prnID='" .$prnID."'");

        if($q->num_rows()>0) {
          foreach($q ->result() as $row) 
          {
             $data[] = $row;    
          }
          return $data;
        }       
    }

话虽这么说,通常让数据库服务器对互联网开放是一个坏主意,除非你只是为了测试而做。我建议调查类似VPN或至少在客户端位置设置防火墙,只允许你所谓的“我的地方”的IP(不是100%完美的解决方案,但总比没有好)。话虽如此,您还需要确保客户端的任何防火墙也允许您设置SQL运行的任何端口(默认为1433)。