1. 程式人生 > >Mysql權限

Mysql權限

inf 設定 slist shu flush pda 2個 擁有 min

技術分享圖片

select、insert、update和delete權限允許你在一個數據庫現有的表上實施操作。

SELECT語句只有在他們真正從一個表中檢索行是才需要select權限,你可以執行某個SELECT語句,甚至沒有任何到服務器上的數據庫裏的存取任何東西的許可。例如,你可使用mysql客戶作為一個簡單的計算器:

mysql> SELECT 1+1;
mysql> SELECT PI()*2;

index權限允許你創建或拋棄(刪除)索引。

alter權限允許你使用ALTER TABLE

create和drop權限允許你創建新的數據庫和表,或拋棄(刪除)現存的數據庫和表。

註意:如果你將mysql數據庫的drop權限授予一個用戶,該用戶能拋棄存儲了MySQL存取權限的數據庫!

grant權限允許你把你自己擁有的那些權限授給其他的用戶。

file權限給予你用LOAD DATA INFILESELECT ... INTO OUTFILE語句讀和寫服務器上的文件,任何被授予這個權限的用戶都能讀或寫MySQL服務器能讀或寫的任何文件。

其余的權限用於管理性操作,它使用mysqladmin程序實施。下表顯示mysqladmin支配每個管理性權限允許你執行的命令:

技術分享圖片

reload命令告訴服務器再讀入授權表,refresh

命令清洗所有表並打開和關閉記錄文件,flush-privilegesreload的一個同義詞,其它flush-*命令執行類似refresh的功能,但是範圍更有限,並且在某些情況下可能更好用。例如,如果你只是想清洗記錄文件,flush-logsrefresh是更好的選擇。

shutdown命令關掉服務器。

processlist命令顯示在服務器內執行的線程的信息。kill命令殺死服務器線程。你總是能顯示或殺死你自己的線程,但是你需要process權限來顯示或殺死其他用戶啟動的線程。

總的說來,只授予權限給需要他們的那些用戶是一個好主意,但是你應該在授予某個權限時試驗特定的警告:

  • grant權限允許用戶放棄他們的權限給其他用戶。2個有不同的權限並有grant權限的用戶可以合並權限。
  • alter權限可以用於通過重新命名表來推翻權限系統。
  • file權限可以被濫用在服務器上讀取任何世界可讀(world-readable,即任何人可讀)的文件到一張數據庫表,然後其內容能用SELECT被存取。
  • shutdown權限通過終止服務器可以被濫用完全拒絕為其他用戶服務, 。
  • precess權限能被用來察看當前執行的查詢的普通文本,包括設定或改變口令查詢。
  • mysql數據庫上的權限能被用來改變口令和其他存取權限信息。(口令被加密存儲,所以一個惡意的用戶不能簡單地讀取他們。然而,有足夠的權限,同一個用戶能用不同的一個代替一個口令。)

有一些事情你不能用MySQL權限系統做到:

  • 你不能明顯地指定一個給定用戶應該被拒絕存取。即,你不能明顯地匹配一個用戶並且然後拒絕連接。
  • 你不能指定一個用戶有權創建立或拋棄一個數據庫中的表,也不能創建或拋棄數據庫本身。

Mysql權限