用户
1、作用:用来管理数据库逻辑对象
2、定义:用户定义分为 用户名
和白名单
;这两个元素确定一个用户
用户名@'白名单'
白名单支持的方式?
wordpress@'192.168.56.%'
wordpress@'%'
wordpress@'192.168.56.200'
wordpress@'localhost'
wordpress@'db02'
wordpress@'192.168.56.5%'
wordpress@'192.168.56.0/255.255.254.0'
3、管理操作
# 创建用户
mysql> create user test@'192.168.56.%' identified by 'test';
# 查看用户表的表结构及用户指定信息
mysql> desc mysql.user;
mysql> select user,host,authentication_string from mysql.user;
# 修改用户
mysql> alter user test@'192.168.56.%' identified by 'test1';
# 删除用户
mysql> drop user test@'192.168.56.%';
权限
1、权限管理操作
mysql> grant all on school.* to test@'192.168.56.%' identified by 'test';
注意:mysql5.7 该命令会创建用户,修改密码
2、常用权限介绍
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:超级管理员才具备的,给别的用户授权的功能
3、权限作用范围
*.* # 所有库的所有所有表;管理员用户
school.* # 指定库的所有表;一般用于开发和应用的用户
school.sc # 指定库的指定表
4、mysql8.0在grant命令添加的新特性
建用户和授权分开了;grant 不再支持自动创建用户,不支持改密码。授权之前必须要提前创建用户。
5、查看授权
mysql> show grants for test@'192.168.56.%';
6、回收权限
回收test用户在school数据库的所有权限
mysql> revoke all on school.* from test@'192.168.56.%';
FQA
问题一:本地管理员忘记密码
1、停止数据库
systemctl stop mysqld
2、使用mysqld_safe启动数据库
/app/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
3、登录数据库,修改密码
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
4、启动数据库
systemctl start mysqld