MySQL允许任何具有SYSTEM_VARIABLES_ADMIN权限的人在服务器运行时更改常规日志和慢速查询日志的位置,包括附加到现有文件。在雷竞技下载官网Percona Server for MySQL 8.0.28-19我们引入了一个新的系统变量secure-log-path,它可用于限制这些日志文件的位置,以避免事故或可能的数据损坏攻击。
当具有系统变量admin权限的人更改这些变量时,服务器将运行一些完整性检查。不幸的是,这些检查非常少,并且只验证指定的文件是否可以被mysqld写入。
与此相比,指定写相关文件和目录名称的其他变量在服务器运行时要么是只读的(如datadir、tmpdir或log_error),要么具有额外的安全检查,例如,受secure-file-priv限制的file特权。
如果没有这样的机制,这些日志文件可以被重定向到MySQL可写的任何文件,例如ibdata0或数据目录中的任何其他数据文件。服务器只向这些文件追加内容,不会从其中删除任何数据,但这仍然可能通过向这些文件中写入不相关的日志消息来破坏这些文件。
要解决这个问题,从雷竞技下载官网Percona Server for MySQL 8.0.28-19我们引入了一个新的变量,secure-log-path。这类似于secure-file-priv:它可以是空的(默认值),也可以是目录名。如果指定该目录,则常规日志文件和慢速查询日志只能设置为该目录下的一个文件。
与secure-file-priv类似,如果这个新变量为空,以及如果数据目录在其中,服务器将在启动期间显示警告。
虽然这两个变量相似,但它们不相同也很重要:在大多数设置中,具有FILE权限的用户不应该具有对mysqld使用SQL命令写入的日志文件的读访问权限,因为这可能会泄露潜在的敏感数据。为了避免这种情况,将它们设置到不同的目录是很重要的。






