mysql的許可權控制主要是通過mysql庫下的db,user,host,table_priv,column_priv表控制。
由於許可權資訊資料量比較小,所以mysql在啟動時會將所有的許可權訊息載入到記憶體。
但是如果是通過grant,revoke或drop user,create user等命令這修改許可權的話就不需flush
mysql中許可權一共有五級,按照大小順序為:global > database > table > column, routine level是對儲存過程或函式操作的
①, global level
全域性許可權控制,所有許可權資訊儲存在mysql.user表中。global level是針對整個mysqld的。
grant select,create table on *.* to u1 identified by password;
②, database level
作用域為指定整個資料庫中的所有物件。
grant select,create table on databasename.* to u1 identified by password;
user database1;
grant drop on * to 'u1'@'%', 'u1'@localhost,u2@'%';
③,table level
作用域為指定特定使用者下的特定表
grant index on test.t1 to 'u1'@localhost
④, column level
作用域為特定庫下特定表中的某些列。
column級別的許可權有insert,select,update。授權方式: grant select(c1,c2,c3) on test.t1 to 'u1'@localhost;
⑤, routine level
routine level的許可權主要只有execute和alter routine兩種,主要針對的物件是procedure和function這兩種物件,在授權routine level許可權時,需要指定資料庫和相關物件。
grant execute on test.p1 to 'u1'@'%';
關於Mysql許可權表的使用小結
前幾天遇到乙個問題。我的msql許可權表 mysql.user 的內容是這樣的 localhsot user password root 81f5e21e35407d884a6cd4a731aebfb6af209e1b bogon root 81f5e21e35407d884a6cd4a731aeb...
關於Mysql許可權表的使用小結
關於mysql許可權表的使用小結 前幾天遇到乙個問題。我的msql許可權表 mysql.user 的內容是這樣的 www.2cto.com localhsot user password root 81f5e21e35407d884a6cd4a731aebfb6af209e1b bogon root...
MySQL中許可權管理
mysql許可權系統通過下面兩個階段進行認證 對連線的使用者進行身份認證,合法的使用者通過認證,不合法的使用者拒絕連線。對通過認證的合法使用者授予相應的許可權,使用者可以通過再這些許可權範圍內對資料庫做相應的操作。在許可權訪問過程中,主要涉及到mysql資料庫下user表和db表。user表的資料結...