Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
C# 对SQL Server 2008 R2的远程访问_C#_Sql Server - Fatal编程技术网

C# 对SQL Server 2008 R2的远程访问

C# 对SQL Server 2008 R2的远程访问,c#,sql-server,C#,Sql Server,提醒:不在局域网上。是否需要对SQL Server进行一些配置?将使用什么连接字符串?net是编程语言。所有SQL Server都可以通过tcp/ip连接,MS也不例外。如果您的计算机位于NAT路由器或防火墙后面,则只需设置适当的端口访问。在大多数消费级设备上,这被称为针孔。您必须允许入站到SQL Server端口1433或您选择的任何端口 现在大多数ISP都会给你一个WAN真实世界的IP地址,那就是路由器的WAN端。LAN端的所有机器通常都采用192.168.x.x/10.x.x.x/172.

提醒:不在局域网上。是否需要对SQL Server进行一些配置?将使用什么连接字符串?net是编程语言。

所有SQL Server都可以通过tcp/ip连接,MS也不例外。如果您的计算机位于NAT路由器或防火墙后面,则只需设置适当的端口访问。在大多数消费级设备上,这被称为针孔。您必须允许入站到SQL Server端口1433或您选择的任何端口

现在大多数ISP都会给你一个WAN真实世界的IP地址,那就是路由器的WAN端。LAN端的所有机器通常都采用192.168.x.x/10.x.x.x/172.16.x.x地址方案,由于所有路由器都被编程为忽略这些地址块而不传递它们,因此这些地址方案不可路由

请记住,除非您特别要求静态IP地址,否则您的WAN端肯定会不时更改,因此您需要通过类似ipchicken.com的方式让您的朋友知道它已更改为什么


此外,由于许多攻击者都会查看MS-SQL的标准端口,如果您的设备无法限制源地址,我强烈建议您使用10000以上的随机端口,而不是标准1433。

我对c或MS SQL server 2008不太了解,但我已经设置了许多服务器

连接到internet的每台计算机都有一个地址。。。我相信你知道 现在,如果您使用路由器,您将知道路由器连接到调制解调器,并通过路由器通过无线连接或以太网连接分布。线缆,路由器组织事物的方式,是为每台计算机分配一个私有ip地址,如192.168.1.2。。。外部世界根本无法访问此专用ip地址。。。因为路由器收到一个数据包,并且不知道把它放在哪里,所以它会立即丢弃它,然后忘记它 这是非常安全的,因为这意味着一个坏人可以访问你的计算机的唯一方式是如果他们在同一个网络上。。。但是,有时您需要托管一个需要外部世界访问的服务器。。。 这有一点解释,请继续阅读

现在,每一个互联网数据包,也就是在网络上发送的任何东西,都会到达一个特定的端口

这些是用常规数字引用的:即端口80、160、55等等

端口的好处在于不同的计算机程序可以同时处理不同的端口

因此,一台计算机可以同时运行多台服务器。因为相应的数据包被发送到相应的端口,因此用于特定应用程序的数据包不会意外地受到其他应用程序的干扰

总之,我们需要做的是告诉我们的路由器说

端口是否等于ms sql server中使用的端口

如果是这样的话,将数据包发送到服务器的私有ip地址 这称为端口转发

您需要首先找到服务器的专用ip地址

在windows上,您需要进入命令提示符并键入: ipconfig 在Linux和Mac OS X中 ifconfig

一旦找到服务器的专用ip地址。让它成为一个静态的。。。这意味着它无法改变

你必须对此进行研究,因为我不使用Windows

记住:静态IP地址

现在,一旦获得服务器的静态ip地址,就需要ms sql server 2008使用的端口

一旦发现需要在路由器上设置端口转发

这因路由器而异,但是,如果您有Netgear路由器,您可以将浏览器指向web管理员页面 这将带您进入netgear路由器管理页面。在侧边栏上找到端口转发/端口触发,然后单击添加自定义服务,然后添加输入

现在,最后一步是找到您的公共ip地址,告诉您的朋友,这是他/她将访问服务器的地址

您可以通过访问

这应该行得通

然而

如果你只有一个调制解调器,直接通过它上网。你有不同的情况

所有数据包都会发送到连接到WAN端口的一台计算机,这意味着无论端口如何,所有数据包都会发送到您的计算机。。。 如果是这样的话

您应该忘记端口转发,只需将使用ipchicken或其他方法找到的公共ip提供给您的朋友

这应该行得通,除非ms sql有一个我不知道的额外安全层

希望这有帮助

额外的

默认情况下,Windows会添加一个防火墙来阻止所有连接,但使用一段时间后建立的例外情况除外。。。所以首先你需要在Windows防火墙上打一个洞,添加一个异常。。。这是通过单击您正在使用的当前连接,然后单击属性或其他内容来完成的,不确定吗 现在,只要你知道怎么做。只需告诉防火墙,ms sql使用的任何端口都是安全的

完成后,您的朋友应该能够通过输入您的ip地址作为主机进行连接。。。。正如我所说的,我对C不太了解,但是你的朋友会使用nessecary过程,就像他们连接到任何旧的sql server一样。除非主机是服务器的ip地址。
我不太明白你所说的连接字符串是什么意思,你能给我更多的信息吗?

@JayRiggs。。。美好的我需要一个好笑话你有一些样品怎么做?啧啧?非常感谢:DUhmm本身并不是很简单,但当您安装SQL server时,其中一个程序是通信配置工具wchi,它允许您选择tcp/ip、netbui、命名管道等。在tcp/ip部分,您可以选择端口。我在上面提到,您直接连接到调制解调器。对于一个windows服务器管理员来说,这有点可怕。只是说,为什么先生?没问题,因为这只是一个案例研究,并实施这项研究,以表明它是否有效,先生。感谢4 d帮助一个直接连接到互联网的windows box,没有防火墙,或者至少在它和世界之间没有NAT,不会持续很久。我想你已经找到配置工具了是吗?非常感谢,先生,它帮助了很多..我没有使用路由器,它直接连接到调制解调器..@Angelo Serrano如果windows防火墙打开,你将不得不打开那里的端口,也许你还记得SQL Slamer大约在2002年。如果您正在查找如何配置端口,请参阅。那么,如何使用桌面应用程序连接到服务器?我将使用什么连接字符串?先生:我帮了我much@AngeloSerrano查看我的新答案以获得更多帮助。。。