Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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# 在app-C中使用直接MySql连接#_C#_Mysql - Fatal编程技术网

C# 在app-C中使用直接MySql连接#

C# 在app-C中使用直接MySql连接#,c#,mysql,C#,Mysql,我开发了一个应用程序,超过2千名用户将使用它。此应用程序连接到包含一些数据的数据库。 我有一些问题: 1.在应用程序中使用mysql直接连接而不是API来读取数据可以吗? 2.是否有人可以通过我的应用程序查找我的服务器信息(地址、通行证等) 应用程序是wpf。如果将信息保存在应用程序中,则可以找到它。您应该考虑使用API来处理数据读取。应用程序可以进行反向工程。一般来说(与所有一般情况一样,在两个方向上都存在各种例外情况),如果满足以下两个条件之一,则可以直接连接到数据库: 应用程序和数据库位于

我开发了一个应用程序,超过2千名用户将使用它。此应用程序连接到包含一些数据的数据库。 我有一些问题: 1.在应用程序中使用mysql直接连接而不是API来读取数据可以吗? 2.是否有人可以通过我的应用程序查找我的服务器信息(地址、通行证等)


应用程序是wpf。

如果将信息保存在应用程序中,则可以找到它。您应该考虑使用API来处理数据读取。应用程序可以进行反向工程。

一般来说(与所有一般情况一样,在两个方向上都存在各种例外情况),如果满足以下两个条件之一,则可以直接连接到数据库:

  • 应用程序和数据库位于同一台计算机上
  • 应用程序和数据库位于不同的计算机上,但在同一个公司网络中,应用程序和数据库之间的通信受到充分保护
  • 如果同时满足以下条件之一:

  • 最终用户拥有应用程序,不与其他用户共享数据(他们破坏了应用程序,这是他们自己的问题,而不是其他人的问题)
  • 您只向每个用户颁发具有必要权限的单独帐户(该用户拥有凭证)
  • 部署应用程序的计算机由业务部门控制,您可以安全地部署应用程序(以及它用于连接到数据库的帐户凭据),从而最终用户无法直接检索帐户凭据。(企业拥有一切)
  • 一般来说,通过公共互联网直接连接到数据库是不合适的,或者在本地网络中连接到数据库的流量没有得到充分的保护,并且让最终用户直接访问数据库与应用程序分开是不合适的(如果用户拥有其机器的所有权,他们将能够获得该访问权)


    我还需要阐明我所说的“充分保护”是什么意思。这涉及几件事:

    • 在客户端和数据库之间有一个好的防火墙。在一些较小的环境中,承载数据库本身的操作系统上的防火墙可能就足够了
    • 防止对进出数据库的数据包进行MitM攻击的措施。对于传统的公司网络,这通常意味着802.1x即使在有线网络上也在运行,wifi访问也受到类似的保护(像你在家里使用的预共享密钥wifi网络是不够好的,因为任何人都可以获得密钥来解密你的流量)。或者,你可以实施加密,从客户端一直运行到这样一个受保护的网络。这是许多公司VPN的用途(公共VPN服务无法为您完成此任务)。您还可以加密实际的数据库连接流量。例如,我知道如何为Sql Server执行此操作,但我不太清楚MySql在这方面的直接支持是什么

    什么类型的应用程序?Windows窗体?Web?@dcg Windows窗体应用程序然后我想您必须将服务器的配置与应用程序一起分发,因此在这种情况下,可以访问您的应用程序的任何人都可以看到您的设置。您能提供资源吗?我的意思是按服务器信息分配连接字符串!有人可以提取exac吗服务器信息?您在寻找什么类型的资源?一旦它以二进制形式写入,就可以通过反向工程进行访问。这是许多人都在处理的问题。有些人通过加密来解决这一问题,这将是一种解决方案。其他人使用API来避免与数据库直接接触。