一、grant 授權(創建用戶並授權,此方式創建的用戶擁有創建數據庫、表等):
grant 權限類型 on 庫.表/函數/存儲過程 to '用戶名'@'主機' [ identified by 'testpass'];
其中,權限類型all表示所有權限,all包含:create,drop,insert,update,delete,select等等。
例1、將mydb庫的students表的所有權限授權給 'testuser'@'192.168.%.%',並設置祕密爲testpass:
grant all on mydb.students to 'testuser'@'192.168.%.%' identified by 'testpass';
例2、將"所有庫的所有表/函數/存儲過程"的所有權限授權給'testuser'@'192.168.%.%'並設置祕密爲testpass:
grant all on *.* to 'testuser'@'192.168.%.%' identified by 'testpass';
例3、將mydb庫的所有表的select權限授權給'readonly'@'%',即'readonly'@'%'只有查詢權限。
grant select on mydb
.* TO 'readonly'@'%'
二、權限類型:
1、管理類權限:create user,file,show databases,super,
reload,shutdown,processlist,replication slave,
replication client,lock tables;
2、庫級別和表級別權限:alter,create,create view,drop,execute,
index,grant,show view
3、數據操作(表級別):select,insert,update,delete
4、字段級別:select(col1,...),insert(col1,...),update(col1,...)
三、查看某個用戶的權限:
show grants for '用戶名'@'主機';
四、revoke 收回權限:
revoke 權限類型 on 庫.表/函數/存儲過程 from '用戶名'@'主機';
如:將收回用戶'testuser'@'localhost'所有權限。
revoke all on *.* from 'testuser'@'localhost';
五、mysql庫中與用戶授權相關的表:
db:庫級別的權限。
tables_priv:表級別的權限。
colomns_priv:列級別的權限。
procs_priv:存儲過程和存儲函數相關的權限。
proxies_priv:代理用戶相關的權限。
六、flush:
1、flush privileges:刷新授權,一般用於對某賬戶授權後,使其立即生效。
2、flush hosts:清空host,一般用於因賬戶信息記不太清楚當連接數據庫幾次一直失敗,那麼當 獲得正確賬戶信息連接被拒絕時,就需要執行flush host.