MySQL中的GRANT BY語句可以用來授權用戶在數據庫中執行特定操作的權限。
GRANT privilege1, privilege2 ON database.object TO user@host IDENTIFIED BY 'password';
語法中的privilege1, privilege2表示需要授權的權限,可以是任意的MySQL操作權限,比如SELECT、INSERT、UPDATE等等。
database.object表示需要授權的數據庫和對象,可以指定為某個具體的表、視圖等等,也可以使用通配符*來代表所有的數據庫和對象。
user@host表示需要授權的用戶和主機,可以表示為某個具體的用戶名和主機名,也可以使用通配符%來代表所有的用戶和主機。
IDENTIFIED BY 'password'表示授權的用戶所使用的密碼,可以是任意的字符串。
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
上述語句將在本地計算機上授權名為user的用戶對所有數據庫和對象執行任意操作。
Grant By語句還支持WITH GRANT OPTION參數,表示授權用戶擁有將自己的權限授權給其他用戶的權限。
GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost' WITH GRANT OPTION;
上述語句將在本地計算機上授權名為user的用戶在database數據庫中執行任意操作,并擁有將自己的權限授權給其他用戶的權限。