權限層級
1:全局層級 適用於服務器中的所有數據庫,權限存儲在mysql.user表中
grant all on *.*
revoke all on *.*
2:數據庫層級 適用於一個數據庫中的所有對象,權限存儲在mysql.db和host表中
grant all on db_name.*
revoke all on db_name.*
3:表層級 使用於一個表中的所有列,權限存儲在mysql.tables.priv表中
grant all on db_name.table_name
revoke all on db_name.table_name
4:列層級 使用於一個表中的單個列,權限存儲在mysql.columns.priv表中
5:子程序層級 CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT權限適用於已存儲的子程序。這些權限可以被授予爲全局層級和數據庫層級。而且,除了CREATE ROUTINE外,這些權限可以被授予爲子程序層級,並存儲在mysql.procs_priv表中。
權限類型
select | 使用select語句查詢表 |
insert | 使用insert語句向表中插入記錄 |
update | 使用update語句更新記錄 |
delete | 使用delete語句刪除表中的記錄 |
all[privileges] | 設置除grant option之外的所有簡單權限 |
alter | 允許使用alter table修改表結構, 驗證語句: alter table a.b modify id int; |
create | 允許使用create table語句創建表。驗證語句:create table a.b(id int); |
create routine | 創建存儲過程。 |
create temporary tables | 允許使用create temporary table。 |
create view | 允許使用create view。驗證語句:CREATE VIEW b.v1 AS SELECT * FROM b.a; |
create user | 允許使用create user, drop user, rename user和revoke all privileges。 |
drop | 允許使用drop table |
execute | 允許用戶運行存儲過程。 |
file | 允許使用select...into outfile和load data infile。 |
index | 允許使用create index, drop index |
lock tables | 允許對擁有select權限的表使用lock tables。 |
process | 允許使用show full processlist。 |
reload | 允許使用flush。驗證語句:flush privileges。 |
replication client | 允許用戶詢問從屬服務器或主服務器的地址 |
replication slave | 用於複製型從屬服務器(從主服務器中讀取二進制日誌事件) |
show databases | 允許使用show databases顯示所有數據庫 |
show view | 允許使用show create view |
shutdown | 允許使用mysqladmin shutdown |
grant option | 允許授予權限 |
#分配權限示例:
格式:grant <權限> on <數據庫.表> to <用戶名>@<訪問位置> identified by '<密碼>';
本機訪問
grant all privileges on dbname.* to username@localhost identified by '1234';
172.19.12段ip訪問
grant all privileges on dbname.* to [email protected].% identified by '1234';
所有IP訪問
grant all privileges on dbname.* to username@% identified by '1234';
給用戶user1賦予在數據庫db1上所有表的select, insert, delete, update權限
GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO user1@localhost;
刪除用戶user1在數據庫db1上所有表上的select, insert, delete, update權限
REVOKE SELECT, INSERT, UPDATE, DELETE ON b.* FROM a@localhost;
/*分配普通用戶權限*/
GRANT SELECT, INSERT, UPDATE, DELETE ON b.* TO a@localhost;
/*分配管理用戶權限*/
GRANT ALL ON b.* TO b@localhost;