时间:2021-04-16
LOAD DATA语句可以装载服务器主机上的文件,若指定LOCAL关键字,可以装载客户端文件。
支持LOCAL版本的LOAD DATA语句有两个可能的安全问题:
· 由MySQL服务器启动文件从客户端向服务器主机的传输。理论上,打过补丁的服务器可以告诉客户端程序传输服务器选择的文件,而不是客户用LOAD DATA语句指定的文件。这样服务器可以访问客户端上客户有读访问权限的任何文件。
· 在Web环境中,客户从Web服务器连接,用户可以使用LOAD DATA LOCAL来读取Web服务器进程有读访问权限的任何文件(假定用户可以运行SQL服务器的任何命令)。在这种环境中,MySQL服务器的客户实际上是Web服务器,而不是连接Web服务器的用户运行的程序。
要处理这些问题,我们更改了MySQL 3.23.49和MySQL 4.0.2(Windows中的4.0.13)中的LOAD DATA LOCAL的处理方法:
· 默认情况下,现在所有二进制分中的发MySQL客户端和库是用--enable-local-infile选项编译,以便与MySQL 3.23.48和以前的版本兼容。
· 如果你从源码构建MySQL但没有使用--enable-local-infile选项来进行configure,则客户不能使用LOAD DATA LOCAL,除非显式调用mysql_options (...MYSQL_OPT_本地_INFILE,0)。参见25.2.3.48节,“mysql_options()”。
· 你可以用--local-infile=0选项启动mysqld从服务器端禁用所有LOAD DATA LOCAL命令。
· 对于mysql命令行客户端,可以通过指定--local-infile[=1]选项启用LOAD DATA LOCAL,或通过--local-infile=0选项禁用。类似地,对于mysqlimport,--local or -L选项启用本地数据文件装载。在任何情况下,成功进行本地装载需要服务器启用相关选项。
· 如果你使用LOAD DATA LOCAL Perl脚本或其它读选项文件中的[client]组的程序,你可以在组内添加local-infile=1选项。但是,为了便面不理解local-infile的程序产生问题,则规定使用loose- prefix:
·[client]
·loose-local-infile=1
·如果LOAD DATA LOCAL INFILE在服务器或客户端被禁用,试图执行该语句的客户端将收到下面的错误消息:
ERROR 1148: The used command is not
allowed with this MySQL version
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这篇文章主要介绍了如何实现Java线程安全问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下解决线程安全问题
一、安装约定mysql安装路径:/usr/local/mysqlmysql数据库路径:/data/mysqlmy配置文件路径:/usr/local/mysql/
下面通过代码给大家介绍了mysql5.7.22二进制包安装方法,具体代码如下所示:.目录规划:程序目录:/usr/local/mysql数据目录:/data/m
mysql5.7忘记root密码的操作步骤:1、在系统偏好设置中停止MySQL服务。2、执行命令以安全模式启动MySQL:cd/usr/local/mysql/
正在看的ORACLE教程是:MicrosoftSQLServer安全问题。MicrosoftSQLServer7.0安全问题MicrosoftCorporati