1.用户管理
用户的作用:登录,管理数据库逻辑对象。
用户的定义:
用户名@'白名单'
白名单:允许哪些IP能够登录数据库
白名单支持的方式?
wordpress@'%' 所有地址
wordpress@'10.0.0.%'10.0.0.0/24网段所有地址
wordpress@'10.0.0.200' 只允许一个地址
wordpress@'localhost' 本地主机
wordpress@'db02' 允许db02别名操作
wordpress@'10.0.0.5%' 50~59
wordpress@'10.0.0.0/255.255.254.0' 254掩码的网段
用户的相关操作:
增:
mysql> create user oldboy@'10.0.0.%' identified by '123';
查:
mysql> select user,host from mysql.user;
mysql> desc mysql.user;查找记不住的命令
mysql> select user ,host ,authentication_string(密码) from mysql.user
改:
mysql> alter user oldboy@'10.0.0.%' identified by '456';
删:
mysql> drop user oldboy@'10.0.0.%';
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:超级管理员才具备的,给别的用户授权的权限
同时具备ALL和with grant option就是超级管理员
权限操作:
mysql> grant all on wordpress.* to wordpress@'10.0.0.%' identified by '123';
grant为命令
all 权限
on在什么对象上设置权限
wordpress.*权限的作用范围(对wordpress库做操作)
to对哪个用户做操作
wordpress@'10.0.0.%'用户
identified by '123'设置密码
权限作用范围设置方式:
*.* ---->管理员用户
wordpress.* 只对wordpress授权,适用于开发和应用用户
wordpress.t1 只对这个库下t1表授权
需求1:windows机器的navicat登录到linux中的MySQL,管理员用户。
mysql> grant all on *.* to root@'10.0.0.%' identified by '123';
需求2:创建一个应用用户app用户,能从windows上登录mysql,并能操作app库
mysql> grant select ,update,insert,delete on app.* to app@'10.0.0.%' identified by '123';
3.开发及应用人员用户授权流程
1.需要用到哪些权限
2.对哪个库哪个表操作
3.你从哪个地址链接数据库
4.密码要求
4.mysql8.0在grant命令添加新特性
建用户和授权分开了
grant 不再支持自动创建用户了,不支持改密码
授权之前,必须要提前创建用户。
3306 [(none)]>create user oldgirl@'10.0.0.%' identified by '123';
3306 [(none)]>grant all on oldgirl.* to oldgirl@'10.0.0.%';
5.查看授权
show grants for app@'10.0.0.%';
6.回收权限
revoke delete on app.* from app@'10.0.0.%';