SQL GRANT 授與資料庫使用權限

建立一個新帳號後,你要授與資料庫使用權限給這位使用者,這帳號才能開始連線進去資料庫操作。

GRANT 語法 (Syntax)

MySQL

GRANT type_of_permission ON database_name.table_name TO 'username'@'hostname';

hostname 表示允許這帳號能從什麼地方連線到資料庫。localhost 表示只允許從本地端登入;% 是萬用字元,表示允許從任何地方登入。

例如,授與 mike 所有資料庫和所有資料表的所有操作權限:

GRANT ALL PRIVILEGES ON *.* TO 'mike'@'%';

用上面指令授與權限後,要記得下這個指令讓權限開始生效:

FLUSH PRIVILEGES;

MySQL 有這些常見的權限類型:

  • ALL PRIVILEGES - 所有的權限
  • CREATE - 可以建立資料表或資料庫的權限
  • DROP - 可以刪除資料表或資料庫的權限
  • DELETE - 可以在資料表中刪除資料的權限
  • INSERT - 可以新增資料到資料表的權限
  • SELECT - 可以查詢資料表的權限
  • UPDATE - 可以更新資料表中的資料的權限
  • GRANT OPTION - 可以授權使用權限給其他使用者的權限

你可以用逗點分隔多個權限:

GRANT SELECT,INSERT ON customers.* TO 'mike'@'%';