mysql權限管理

權限層級
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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章