MySQL是一種流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它很靈活并提供了許多授權(quán)選項(xiàng),以幫助管理員管理數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。一個(gè)有用的授權(quán)選項(xiàng)是前綴授權(quán),這允許管理員為特定的數(shù)據(jù)庫(kù)表或視圖授予訪問(wèn)權(quán)限,但是只限于以特定前綴開(kāi)頭的對(duì)象。
-- 通過(guò)前綴授權(quán)為數(shù)據(jù)庫(kù)表授權(quán)訪問(wèn)權(quán)限 GRANT SELECT ON database_name.table_prefix% TO 'user'@'localhost'; -- 通過(guò)前綴授權(quán)為視圖授權(quán)訪問(wèn)權(quán)限 GRANT SELECT ON database_name.view_prefix% TO 'user'@'localhost'; -- 取消前綴授權(quán) REVOKE SELECT ON database_name.table_prefix% FROM 'user'@'localhost'; REVOKE SELECT ON database_name.view_prefix% FROM 'user'@'localhost';
如上所述,管理員可以通過(guò)使用“%”符號(hào)指定授權(quán)對(duì)象的前綴。例如,如果數(shù)據(jù)庫(kù)表名為“table_prefix_1”,則前綴為“table_prefix_”,那么上述授權(quán)語(yǔ)句將授予用戶對(duì)所有以“table_prefix_”為前綴的表的SELECT訪問(wèn)權(quán)限。
前綴授權(quán)為管理員提供了更好的控制,因?yàn)樗试S他們?yōu)樘囟ǖ膶?duì)象授予訪問(wèn)權(quán)限,同時(shí)保持余下的對(duì)象不受影響。這是一種更靈活的方法,比為整個(gè)數(shù)據(jù)庫(kù)或表授權(quán)更受歡迎。