远程访问MySQL-不安全?

远程访问MySQL-不安全?,mysql,security,connection,Mysql,Security,Connection,打开mysql服务器端口以允许远程连接是否不安全? 如果不安全,有什么更好的解决方案 编辑: -我需要读写权限。 -每个用户都有一个用于连接的密码。这意味着没有任何用户可以连接到数据库 这个环境有什么安全问题? 有更好的解决方案吗?原则上,MySQL有一个严格的权限系统,可以设置该系统,允许远程用户以最低的权限访问他们工作所需的表 实际上,MySQL过去曾多次利用漏洞,包括应用这些权限和阻止访问主机服务器。对未来的期望更高是合理的;由于很少有管理员允许对MySQL服务器进行不受信任的访问,因此M

打开mysql服务器端口以允许远程连接是否不安全? 如果不安全,有什么更好的解决方案

编辑:

-我需要读写权限。 -每个用户都有一个用于连接的密码。这意味着没有任何用户可以连接到数据库

这个环境有什么安全问题?
有更好的解决方案吗?

原则上,MySQL有一个严格的权限系统,可以设置该系统,允许远程用户以最低的权限访问他们工作所需的表

实际上,MySQL过去曾多次利用漏洞,包括应用这些权限和阻止访问主机服务器。对未来的期望更高是合理的;由于很少有管理员允许对MySQL服务器进行不受信任的访问,因此MySQL服务器不会受到攻击(不像Apache这样的web服务器)

MySQL的身份验证模型也很弱:密码作为非盐散列存储在一个表中,并且没有针对暴力密码攻击的保护。对于可信服务器应用程序和数据库之间的通信,您可以不受影响;对于不完全信任的第三方的身份验证,这还不够好

如果您的“用户”是数据库管理员,那么可以给他们远程访问,通过IP地址/防火墙或SSH隧道锁定访问。如果“用户”不是您希望将数据库作为客户端应用程序的一部分使用的完全受信任的第三方,我不会。而且绝对不要打开整个公共互联网

在任何情况下,如果我们谈论的是应用程序用户,那么您的业务规则在访问权限方面需要比您使用表级或列级控件所能管理的粒度更大的粒度。例如,“审阅者类用户可以将article.state设置为3,但前提是article.state以前为1或2”,或“将article.state设置为4始终会导致删除关联的articlecontent”等规则无法在表权限中复制


为此,您几乎总是需要原始表存储和远程客户端/应用程序之间的一些组件来管理请求。该层传统上是一个单独的服务器应用程序,它是唯一与数据库通信的东西。理论上,您可以在数据库存储过程中编写该组件,并且只允许用户访问过程而不是表。但是,与通用编程语言相比,在存储过程中执行任何复杂的操作都是一件非常痛苦的事情。

只要用户拥有只读权限,我就不认为这是不安全的。!!!他们必须同时拥有读写权限。。。为什么它是不安全的呢?如果你已经为用户提供了所有的权利,那么可能是任何用户都可以放弃他/她不应该做的表格!!!休息我不认为有任何问题!!!通过向远程连接打开它,您将使其面临远程用户密码丢失或强制执行,或服务被DDOS破坏的风险。对此要非常小心,如果必须允许远程访问,请尽可能使用基于主机的适当身份验证。不允许任何用户从任何主机访问。相关: