mysql grant授权

mysql grant授权

基本语法

grant 权限 on 数据库对象 to 用户 identified by 密码

用户一般格式是:用户名@IP

说明:IP有时候会写%。%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限

当不加@选项时,效果与加@'%'是一样的,'%'从名义上包括任何主机,(%必须加上引号,不然与@放在一起可能不会被辨认出。)不过有些时候(有些版本)'%'不包括localhost,要单独对@'localhost'进行赋值

基本权限设置

--  赋予用户common_user在所有IP上拥有testdb数据库中所有表的增/删/查/改的权限
grant select(insert 或update或delete ) on testdb.*   to common_user@’%’;
 
-- 一次性赋予增删查改的所有权限
grant select, insert, update, delete on testdb.* to common_user@’%’;
 
-- grant 创建、修改、删除、操作索引 MySQL 数据表结构权限。
grant create/alter/drop/index  on testdb.* to user@’192.168.0.%’;
 
-- grant 操作 MySQL 外键权限。
grant references on testdb.* to user@’192.168.0.%’;
 
-- grant 操作 MySQL 临时表权限。
grant create temporary tables on testdb.* to user@’192.168.0.%’;
 
-- grant 操作 MySQL 视图、查看视图源代码 权限。
grant create view on testdb.* to user@’192.168.0.%’;
grant show view on testdb.* to user@’192.168.0.%’;

高级权限、细分权限

//所有数据库所有表:*.* 
-- 授权用户 dba 所有数据库所有表的所有权限
grant all (privileges)  on *.* to dba@’localhost’;
 
//一个数据库所有表:数据库名(.*)
-- 授权用户 dba 针对 testdb 数据库所有表的所有权限
grant all (privileges) on testdb to dba@’localhost’;
 
//一个数据库一个数据表:库.表  
grant select, insert, update, delete on testdb.orders to dba@localhost;
 
-- 给一个用户授权多张表时,可以多次执行以上语句。例如:
grant select on smp.users  to mo_user@’%’ identified by ‘123345′;
grant select on smp.mo_sms to mo_user@’%’ identified by ‘123345′;
 
// grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;

//grant 给普通用户授权mysqldump的权限
GRANT SELECT, LOCK TABLES ON `aio_%`.* TO 'aio_user'@'%';
flush privileges;

查询权限

-- 查看当前用户(自己)权限:
show grants;
 
-- 查看其他 MySQL 用户权限:
show grants for zhangkh@'192.168.1.10';

回收权限

-- 把grant 换成revoke  to 换成 from
-- grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
 
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;

授予权限

-- 想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option;
 
-- 使myuser使用mypassword从任何主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  
FLUSH   PRIVILEGES; 
 
-- 允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY  'mypassword' WITH GRANT OPTION;  
FLUSH   PRIVILEGES; 
 
 
-- 允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  
FLUSH   PRIVILEGES; 

-- 模糊匹配授权
grant select,update,insert,create,alter,delete,drop,index,references,lock tables on `soi_%`.* to 'soi_user'@'%';
posted @ 2022-09-29 12:01  liwenchao1995  阅读(255)  评论(0编辑  收藏  举报