shutdown权限通过终止服务器可以被滥用完全拒绝为其他用户服务
·可能会产生严重安全漏洞权限
不要把PROCESS权限给所有用户mysqladmin processlist输出显示出当前执行查询正文如果另外用户发出个UPDATE user SET password=PASSWORD('not_secure')查询被允许执行那个命令任何用户可能看得到mysqld为有process权限用户保留个额外连接, 以便个MySQL root用户能登录并检查即使所有正常连接在使用
不要把FILE权限给所有用户有这权限任何用户能在拥有mysqld守护进程权限文件系统那里写个文件!为了使这更安全些用SELECT ... INTO OUTFILE生成所有文件对每个人是可读并且你不能覆盖已经存在文件
FILE权限也可以被用来读取任何作为运行服务器Unix用户可存取文件这可能被滥用不仅有该服务器主机帐号用户可以读取它们而且有FILE权限任何客户机也可以通过网络读取它们你数据库目录和系统各种文件可能成为全球范围共享文件!例如通过使用LOAD DATA装载“/etc/passwd”进个数据库表然后它能用SELECT被读入
下面过程介绍说明如何进行此项操作:
1、建具有LONGBLOB列表:
mysql> USE test; mysql> CREATE TABLE temp (b LONGBLOB);
2、用此表读取你要窃取文件内容:
mysql>LOAD DATA INFILE “/etc/passwd” INTO TABLE temp ->FIELDS ESCAPED BY “” LINES TERMINATED BY “”; mysql>SELECT * FROM temp;
3、可以这样窃取你数据表data:
mysql>LOAD DATA INFILE“./other_db/data.frm” INTO TABLE temp ->FIELDS ESCAPED BY“”LINES TERMINATED BY“”; mysql>SELECT * FROM temp INTO OUTFILE“./another_db/data.frm” ->FIELDS ESCAPED BY“”LINES TERMINATED BY“”; mysql>DELETE FROM temp; mysql>LOAD DATA INFILE“./other_db/data.MYD” INTO TABLE temp ->FIELDS ESCAPED BY“”LINES TERMINATED BY“”; mysql>SELECT * FROM temp INTO OUTFILE“./another_db/data.MYD” ->FIELDS ESCAPED BY“”LINES TERMINATED BY“”; mysql>DELETE FROM temp; mysql>LOAD DATA INFILE“./other_db/data.MYI” INTO TABLE temp ->FIELDS ESCAPED BY“”LINES TERMINATED BY“”; mysql>SELECT * FROM temp INTO OUTFILE“./another_db/data.MYI” ->FIELDS ESCAPED BY“”LINES TERMINATED BY“”; mysql>DELETE FROM temp;
然后用户就拥有个新表another.data可以对它进行完全访问
MySQL权限系统无法完成任务
有些事情你不能用MySQL权限系统做到:
你不能明显地指定个给定用户应该被拒绝存取即你不能明显地匹配个用户并且然后拒绝连接
你不能指定个用户有权创建立或抛弃个数据库中表也不能创建或抛弃数据库本身
TAG: 数据库 mysql MySQL Mysql MYSQL 原则 授权
最新评论