用户作用:登录、管理mysql

1 用户管理

1.1 创建用户

mysql> create user scxiang@’10.0.0.%’ identified by ‘abc123..’;
备注:8.0以前,以下方式可以自动创建用户并授权,本来grant命令是用于授权的,8.0版本之后必须先create创建用户然后再执行grant授权动作
mysql> grant all on . to scxiang@’10.0.0.%’ identified by ‘abc123..’;
定义用户的形式
格式:用户名@’白名单’
wordpress@’%’
wordpress@’127.0.0.1’
wordpress@’10.0.0.%’
wordpress@’10.0.0.5%’
wordpress@’10.0.0.0/255.255.240.0’

1.2 修改用户

mysql> alter user scxiang@’10.0.0.%’ identified by ‘123456’;

1.3 查询用户

mysql> select user,host from mysql.user;

1.4 删除用户

mysql> drop user scxiang@’10.0.0.%’;

2 权限管理

2.1 权限列表

ALL
SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
ALL : 以上所有权限,一般是普通管理员拥有的
with grant option:通常只有超级管理员才具备的,该权限具备给别的用户授权的权限
备注:如果一个用户同时具备了ALL+with grant option的权限,他也就成为了一个超级用户

2.2 用户授权

语法格式:grant 权限 on 作用目标 to 用户 identified by 密码 with grant option;
作用目标:
. 所有库的所有表
wordpress. wordpress库下的所有表
wordpress.t1 workpress库下的t1表
例子:
1)给scxiang所有授权
mysql> grant all on
. to scxiang@’10.0.0.%’ identified by ‘123’ with grant option;
2)给用户授权wordpress库下的SELECT,INSERT,UPDATE,DELETE,CREATE权限
mysql> grant SELECT,INSERT,UPDATE,DELETE,CREATE on wordpress.
to scxiang@’10.0.0.%’ identified by ‘123’ ;
3)创建一个管理员用户root,可以通过10网段,管理数据库
mysql> grant all on . to scxiang@’10.0.0.%’ identified by ‘123’ with grant option;
4)创建一个应用用户wordpress ,可以通过10网段,wordpress库下的所有表进行SELECT,INSERT,UPDATE,DELETE
mysql> grant SELECT,INSERT,UPDATE,DELETE on wordpress.* to wordpress@’10.0.0.%’ identified by ‘abc123..’;

2.3 权限回收

1)查看权限
查看wordpress命令
mysql> show grants for wordpress@’10.0.0.%’;
2)权限回收
删除delete命令
mysql> revoke grants DELETE on wordpress. from ‘wordpress’@’10.0.0.%’;
*注意事项:

关于工作中生产环境数据库开用户注意事项:
1、如何沟通开数据库用户
1)严格走邮件申请,邮件抄送领导;
2)申请明确写清楚对哪些数据库和表做操作,以及什么操作,一般禁止对delete和drop权限的申请;
3)从什么地址来登录;
2、开发人员找你要root用户密码的情况如何处理:
1)让他走邮件申请,通常除DBA外不允许任何其他人对数据库有root的权限
2)如何是金融类公司对此管控更加严格,如有人索要root权限,可能会被举报并全员通告