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'@'%';