在MySQL中,一個(gè)用戶可以擁有多個(gè)表,這種設(shè)計(jì)可以使數(shù)據(jù)庫(kù)的管理更加方便,因?yàn)槊繌埍矶伎梢詥为?dú)授權(quán)給不同的用戶進(jìn)行管理。下面我們來看一下具體的實(shí)現(xiàn)方法。
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1'; GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost'; CREATE TABLE table1 ( id INT PRIMARY KEY, name VARCHAR(50), age INT ); CREATE TABLE table2 ( id INT PRIMARY KEY, location VARCHAR(50), salary FLOAT ); GRANT ALL PRIVILEGES ON database.table1 TO 'user1'@'localhost'; GRANT ALL PRIVILEGES ON database.table2 TO 'user1'@'localhost';
以上代碼創(chuàng)建了一個(gè)名為"user1"的用戶,并賦予他在所有數(shù)據(jù)庫(kù)和所有表上的所有權(quán)限。然后,我們創(chuàng)建了兩張表"table1"和"table2",并將這兩張表的管理權(quán)限授予了"user1"用戶。
如果我們希望"user1"用戶只能訪問"table1"表,可以修改授權(quán)的語句如下:
GRANT ALL PRIVILEGES ON database.table1 TO 'user1'@'localhost'; REVOKE ALL PRIVILEGES ON database.table2 FROM 'user1'@'localhost';
我們將"table2"表的權(quán)限從"user1"用戶中撤銷,這樣"user1"用戶就只能訪問"table1"表了。
總結(jié)一下,一個(gè)用戶可以授權(quán)多張表的管理權(quán)限,這樣可以靈活地對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和分配權(quán)限。需要注意的是,授權(quán)和撤銷授權(quán)時(shí)要注意精確指定目標(biāo)數(shù)據(jù)庫(kù)和表名。