MySQL 資料庫的使用者權限簡介
當使用以下語法建立一個新的 MySQL 使用者時,
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
這個使用者在一開始沒有什麼權限。可以說,它什麼都不能做。
它無法讀取任何現有資料庫的資料,更不能修改資料。甚至無法建立新的資料庫。
如果要讓使用者做任何事情,你必須授予權限給它。
你可以使用 GRANT
命令來這麼做。
我們可以使用 GRANT <permission>
,使用以下權限關鍵字:
CREATE
DROP
DELETE
INSERT
SELECT
UPDATE
ALL PRIVILEGES
給使用者權限去建立新資料庫
GRANT CREATE ON *.* TO '<username>'@'localhost';
給使用者權限在特定資料庫中建立新表格
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
給使用者權限讀取(查詢)特定資料庫
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
給使用者權限讀取特定資料庫的表格
GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';
給使用者權限在特定資料庫中插入、更新和刪除資料列
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
給使用者權限刪除特定資料庫的表格
GRANT DROP ON <database>.* TO '<username>'@'localhost';
給使用者權限刪除資料庫
GRANT DROP ON *.* TO '<username>'@'localhost';
給使用者在特定資料庫上所有權限
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
給使用者所有權限
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
撤銷一個權限
撤銷對於 <database>
的 DROP
權限的例子:
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
撤銷所有權限,執行以下命令:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
你可以執行以下命令來查看單一使用者的權限:
SHOW GRANTS FOR '<username>'@'localhost';