1.mysql权限的介绍

GRANT 权限 ON 权限级别 TO 用户; 语法
权限也属于一种数据,系统数据需要用专业的表进行存储。
权限 级别 使用人员及存放路径
. : 全库级别 —-> 管理员 —-> mysql.user
test.* : 单库级别 —-> 业务层面 —-> mysql.db
test.t1 : 单表级别 —-> mysql.tables_priv
select(id,name) : 列级别 —->mysql.columns_priv
show privileges; ## 查看mysql可以授权的权限
生产库:
管理员:
ALL 以上权限中不包含 Grant option
grant option ##all权限默认没有grant option 这个权限可以给别人进行授权
生产中不允许赋予drop权限。
业务用户:
select insert delete update
开发用户 —-》 开发库
测试人员 —-》 测试库
开发人员—-》 SQL 审核平台 ——》 生产库
管理员

1.2.生产中用户类型规范

管理员 : ALL
开发 : Create ,Create routine,Create temporary tables,Create view,Show view
,Delete ,Event ,Execute,Insert ,References,Select,Trigger,Update
dev_g_role
监控 : select , replication slave , client supper
备份 : Select 、SHOW DATABASES、 PROCESS LOCK TABLES 、RELOAD
主从 : replication slave replication client # grant replication slave,replication client on . to user@’%’;
业务 : insert , update , delete ,select

注意 show databases 是全局权限,不需要单独授权给某一个用户否则会抱错,即使不单独授权也能使用,show databases;

1.3权限查询

show grants for test@’10.0.0.%’ ; ## 查询test用户有那些权限
还可以直接插卡权限表
select from mysql.user where user=’test’;
select
from mysql.db where user=’test’;

1.4权限回收

mysql> revoke delete on . from oldguo@’10.0.0.%’; ## revoke是关键字 delete是权限,.库表 from oldguo 是用户
Query OK, 0 rows affected (0.01 sec)
mysql> show grants for oldguo@’10.0.0.%’; ## 验证权限是否被回收。

1.5角色管理

角色可以给权限定义一个别名,十几个权限一个名字类似于变量。
mysql> create role dev@’10.0.0.%’; ## 创建一个 dev角色 role是 关键字
mysql> grant select on . to dev@’10.0.0.%’; ## 给角色赋予权限
mysql> grant dev to user2@’10.0.0.%’; ## 给user2赋予角色的权限。
mysql.role_edges; ## 查看 角色的信息
information_schema.user_privileges; ##查看角色的信息