一:用户管理
1.作用:登录数据库,和管理数据库里的对象
2.定义用户;
两个部分:用户名@'白名单'
用户名:是一个随机的字符串(数字,字符,下划线等)
@:固定写法
白名单:允许登录的ip的地址列表(可以是一个或多个ip列表)
常用:
oldguo@'localhost' 允许本地登录
oldguo@'10.0.0.%' 允许10.0.0.0/255.255.255.0
oldguo@'10.0.0.0/255.255.254.0'
oldguo@'10.0.0.5%'
oldguo@'%' % :直接表所有,##如果在连接互联网的时候,就需要固定到一个单一ip
oldguo@'10.0.0.51'
3.用户管理
a. 查询用户
mysql>select user,host,plugin,authentication_string from mysql.user;
b. 创建用户
## 创建用户,无密码
mysql> create user oldboy@'localhost';## 创建用户,有密码
mysql> create user oldguo@'localhost' identified by '123';## 创建用户,有密码,还修改了密码插件
mysql> create user oldxu@'localhost' identified with mysql_native_password by '123';## 注意:
1. 8.0之后,不再支持grant一次性创建用户授权了.必须先建用户后授权.
2. 8.0之后,密码插件改为caching_sha2_password,早期版本是mysql_native_password
c. 修改用户
## 修改密码
mysql> alter user oldguo@'localhost' identified by '123';## 修改插件
mysql> alter user oldguo@'localhost' identified with mysql_native_password by '123';## 对无密码的用户,进行加锁
mysql> alter user oldboy@'localhost' account lock;## 加锁的用户,进行解锁
mysql> alter user oldboy@'localhost' account unlock;
d. 删除用户 ##(删除用户,会将授予的权限一并删除)
mysql> drop user oldboy@'localhost';
第二章–第三节:MySQL权限管理
1.作用: 限制用户能够对数据库的对象做哪些事情
## 在数据库中,命令即为权限 ,你需要什么命令,就授权给这个什么权限
2.定义:
show privileges; 显示所有的权限
# ALL这个命令。可以包含上述的所有权限(并且也只有管理员才会有all权限)# 但唯独有一个,叫grant option (是管理员用户用来给别人授权的)
3.对于应用用户:
一般具备的权限:
select update dalete insert
4.聊聊授权表?
授权:就是授权给一个用户,让它对什么样的库,有什么的权限。
授权表:其实就是对什么库做了什么样的权限。
如果是针对全局的授权。那么就去mysql.user查找
如果是单库的授权,就去mysql.db里查找
## 表都放在mysql这个库中。
use mysql; show tables;### 做对比:
user表 ## *.* (表全局范围权限) =======>相当于在linux 授权了/
db表 ## test.* (表单库级别) =======> 相当于给一个目录授权
tables_priv表 ## test.t1 (单表级别) =====> 相当于给一个文件进行授权
可以加\G,让查看的内容进行数列的方式显示
5. 查询权限
## 对某一用户进行权限的查看
show grants for 用户名@'白名单'## 查询db表里的所有信息select * from mysql.db\G
6.授权管理
授权:
## 给管理员授权
grant all on *.* to oldguo@'localhost';## 给普通用户授权一个业务
例如: 给oldxu@'localhost' 授权为oldxu业务的应用用户
grant select,update,delete ,insert on oldxu.* to oldxu@'localhost';# 剖析命令
grant : 是表示授予的权限命令
on : 是表示授权的范围(是所有库,还是什么)
to : 是表示针对的哪一个用户
回收:revoke
## 在数据库中修改权限,不像linux中,直接覆盖就行。## 在数据库中,是需要先回收权限,在更换权限。要不然是会权限叠加select ----> update
mysql> revoke delete on oldxu.* from oldxu@'localhost';
第二章–第四节:MySQL连接管理
# 查看用户的来源
show processlist;
连接方式:
1.自带客户端程序
socket 本地套接字文件
默认是/tmp/mysql.sock
是在/etc/my.cnf里设置的。也可以设置到其他位置
登录方式:
mysql -uoldguo -p123 -S /tmp/mysql.sock
前提: 是需要提前创建这个用户
2. TCP/IP 网络远程连接的方式
mysql> create user remote@'10.0.0.%' identified by '123';
mysql> grant all on *.* to remote@'10.0.0.%';
前提:需要创建 remote@'10.0.0.%' 这个用户
应用:
mysql -uremote -p123 -h10.0.0.51 -P3306
3.开发者工具
一般是给开发使用的