一、用户管理
1.用户作用:
登录,管理数据库对象(库、表..)
2.用户定义:
用户名@'白名单(允许登录的IP段)'
示例用户:
oldboy@'10.0.0.51'
用户名oldboy,允许10.0.0.51地址登录 合在一块才算一个完成的用户
白名单支持的格式:
oldboy@'10.0.0.%'
oldboy@'10.0.0.5%'
oldboy@'10.0.0.51'
oldboy@'10.0.0.0/255.255.254.0'
oldboy@'%'
oldboy@'oldboy.com'
oldboy@'localhost'
oldboy@'db01'
常用白名单格式:
oldboy@'10.0.0.%' %代表搜友
oldboy@'10.0.0.5%' 50-59网段
oldboy@10.0.0.0/'255.255.254.0' 限制网关
oldboy@'localhost 仅本地登录
小试牛刀:简单SQL语句(用户相关)
1.创建一个abc用户,允许10网段登录,密码为123456
create user 'abc'@'10.0.0.%' identified by '123456';
注意:abc可以不加单引号,但是有时候用户名敏感,无法创建时,必须加上单引号
2.查看所有用户
select user,host,authentication_string from mysql.user;
3.删除abc用户
drop user abc@'10.0.0.%';
注意:删除的用户和白名单必须对应
(悄悄的再把abc用户给创建回来,因为接下来还要用到)
4.修改abc用户登录mysql密码为123
数据库里修改:
alter user abc@'10.0.0.%' identified by '123';
命令行修改:
mysqladmin -uabc -p123456 password '123'
用户 老密码 新密码
5.有时候修改完用户信息(密码或者权限,然而并不会立马生效,别害怕,刷新到磁盘即可)
flush privileges;
6.查看用户拥有的权限
show grants for abc@'10.0.0.%';
返回结果看不明白?没关系,往下看,我一会会说权限相关,现在知识练习SQL语句
7.回收用户权限
revoke delete on 库名.* to abc@'10.0.0.%' identified by '123456';
要回收的权限 针对哪个库,哪个表 用户,密码
注意:别想着回收权限,我直接重新授权一下权限不是好了吗?告诉你,不行,权限这一块,用户只会把权限叠加,而不会覆盖哦
8.创建king用户白名单为10网段,并同时给与所有权限针对所有库和表,密码123456
grant all on *.* to king@'10.0.0.%' identified by '123456';
提示:grant命令可以授权,但是如果授权的哪个用户不存在,则会同时创建用户,而create只可以创建用户,不能授权,你可能会想,那我直接使用grant就好了,直接创建用户并同时授权,告诉你:可以的,但仅限于8.0版本以前,8.0版本以后要求必须先创建用户,再授权。
9.创建一个超级管理员用户(拥有授权其他用户权限的用户)long,其他要求同上
grant all on *.* to 'long'@'10.0.0.%' identified by '123456' with grant option;
没错,只多了with grant option参数,但是long这个用户就拥有了超级管理员(root)的权限(即斯可以给其他用户授权)
(写了这么多关于权限的SQL语句,但是对于权限不太了解怎么办?没关系,往下看。)
二、权限管理
1.权限作用:控制用户登录之后对mysql对象都可以做些什么操作
2.权限定义:针对SQL语句的定义
(注意:搭建mysql时候需要授权所有权限,但是上线的话需要把权限收回,重新授权增删改查权限即可)
3.客户需要权限有:
查询 select SELECT
插入 insert INSERT
更新 update UPDATE
删除 delete DELETE
大写小写都可以
更多权限:(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
老多了,为什么不一一介绍呢?没必要(我也不懂啊),普通客户只需要级别上边增删改查四个权限即可,这些是管理员所具备的
4.权限相关SQL语句小试牛刀:
1.授权所有权限给abc用户(不等于root权限),针对所有库所有表,白名单10网段所有,密码123456,
grant all on *.* to abc@'10.0.0.*' identified by '123456';
2.要求同上,多一项可授其他用户权限的权限(等于超级管理员root的权限)
grant all on *.* to abc@'10.0.0.%' identified by '123456' with grant option;
3.授权,增,删,改,查(四项基本权限)给oldboy用户,其他条件同上
grant select,insert,update,delete on *.* to oldboy@'10.0.0.%' identified by '123456';
4.查看oldboy用户都拥有什么权限
show grants for oldboy@'10.0.0.%';
+--------------------------------------------------------------------+
| Grants for oldboy@10.0.0.% |
+--------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'oldboy'@'10.0.0.%' | 此处显示用户的权限
+--------------------------------------------------------------------+
1 row in set (0.00 sec)
5.收回oldboy删除的权限
(注意:前文已经说过,只能使用收回权限的SQL语句,不能重新授权,指望覆盖,那是错误的选择)
revoke delete on *.* from oldboy@'10.0.0.%';
关于库和表说明:
范围: 库.表
*.* 所有库下的所有表
wordpress.* wordpress库下的所有表
wordpress.t1 wordpress库下的第一张表
网友评论