1、作用
2、权限列表
show privileges;常规权限介绍: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 TABLESPACEall: 以上所有权限,一般是普通管理员拥有的with grant option: 超级管理员才具备的,给别的用户授权的功能Usage: 没有权限,只能连接登录,刚创建的用户为此权限
3、授权
grant 权限 on 权限范围 to '用户'@'白名单';
#权限范围
*.*: 所有库下的所有表
相当于: chmod -R 777 /
db01.*: 单库
相当于: chmod -R 777 /db01
db01.tb01: 单表
相当于: chmod 777 /da01/tb01
4、授权演示
查询用户权限
create user 'laidenglin'@'192.168.10.240' identified by '123456';
flush privileges;
show grants for 'laidenglin'@'192.168.10.240';
use mysql
user表 : user host auth plugin 全局授权(*.*)的权限
db表 : user host 单库范围授权(wordpress.* )的用户权限
table_priv表 : user host 单表范围授权(wordpress.t1)的用户权限
给用户授权
#授权超级管理员admin,只能本机登录,所有库.所有表,all权限,并且拥有grant权限
create user 'admin'@'127.0.0.1' identified by '123456';
grant all on *.* to 'admin'@'127.0.0.1' with grant option;
flush privileges;
show grants for 'admin'@'127.0.0.1';
#授权普通用户,具有db01库下的所有表 具有 增删查改权限
create user 'javadev'@'192.168.10.13' identified by '123456';
grant select,insert,update,delete on db01.* to 'javadev'@'192.168.10.13';
flush privileges;
show grants for 'javadev'@'192.168.10.13';
#grant无法一次给多个库进行授权,授权多个库时,需要写多条grant语句
回收用户权限
# Linux: 反复授权,修改权限
# MySQL: 反复授权,叠加权限
#回收普通用户的delete权限
revoke delete on db01.* from 'javadev'@'192.168.10.13';
flush privileges;
show grants for 'javadev'@'192.168.10.13';
MySQL 8.0 权限新特性: role (角色)
官方文档
https://dev.mysql.com/doc/refman/8.0/en/roles.html
developer: 开发角色, 对db01库所有表有增删查改权限
read: 只读角色, 对db01库所有表只读权限
#创建角色
create role 'developer','read';
#角色授权
grant insert,delete,select,update on db01.* to 'developer';
grant select on db01.* to 'read';
#创建用户
create user 'javadev'@'192.168.10.13' identified by '123456';
create user 'select'@'192.168.10.13' identified by '123456';
#授权用户角色
grant 'developer' to 'javadev'@'192.168.10.13';
grant 'read' to 'select'@'192.168.10.13';
