在网上查询得,这样做可以保证即使数据库被入侵,入侵者也只能拿到MySQL账户权限,拿不到root权限。觉得很迷,数据库被黑了,为什么会拿到Linux的账户权限呢。那到底为什么MySQL官方也推荐新建一个MySQL账户去安装MySQL呢
SELECT ... INTO OUTFILE ... 是可以写文件的。 MySQL 开在 root 上意味着它可以在系统的任何位置写任何文件。 MySQL 攻击可以利用 sql injection 跟上面写文件的语句,在系统特定位置写特定的文件,可以在系统上执行任何命令,包括拿到一个 shell 。(细节就不说了,我也没搞过,想知道自己搜吧 ...) MySQL 开在 mysql 用户上,保证它对系统大部分位置不可写,从而 MySQL 即使被攻击,也可以限制它对整个系统的影响。
SELECT ... INTO OUTFILE ...
是可以写文件的。MySQL 开在 root 上意味着它可以在系统的任何位置写任何文件。
MySQL 攻击可以利用 sql injection 跟上面写文件的语句,在系统特定位置写特定的文件,可以在系统上执行任何命令,包括拿到一个 shell 。(细节就不说了,我也没搞过,想知道自己搜吧 ...)
MySQL 开在 mysql 用户上,保证它对系统大部分位置不可写,从而 MySQL 即使被攻击,也可以限制它对整个系统的影响。