权限管理:
1.身份认证(IP+用户名)
2.权限管理(数据库启动时,就将权限表载入内存)
权限取得过程中,会用到mysql库的user,db,host 3张表
顺序为 user->db->host
账号管理:
1.创建账号
grant 权限 on *.* to 'z1'@'localhost' identified by '密码'
% 代表任何
%.loc.gov //loc.gov 的任何域都可以访问
x.y.% // 从 x.y.net, x.y.com 等都可以访问
144.155.166.% // 从 144.155.166 子网都可以访问
grant usage on *.* to 'z2'@'localhost' identified by '123456'; // 只有登录权限
grant 权限 on *.* to 'z1'@'localhost' identified by '密码' with grant option //授予 grant 权限
2.查看权限
show grants for 'z2';
3.收回权限
revoke select on *.* from 'z1'@'localhost';// revoke 不能删除用户
4.修改密码
mysqladmin -u root password '新密码' -p
set password=password('新密码'); //修改自己的密码
set password for 'z2'@'localhost'=password('新密码'); //修改其他人的密码
5.删除账号
drop user 用户名
安全问题:
1.避免以 root 身份运行
2.防止 dns 欺骗
3.删除空账号
4.交互式输入密码
5.执行批处理时,将用户名和密码写入my.conf,并将文件 chmod 为 600
6.不要把 FILE,PROCESS或SUPER权限授予管理员以外的身份
FILE: select...INTO OUTFILE ...
LOAD DATA INFILE ...
PROCESS : 用来执行 show processlist
grant process on ...
7.drop table 命令不回收以前相关访问权限,再次创建相同的表,继承以前的权限
8.使用ssl
grant select on *.* to user@localhost identified by '123123' require ssl;
9.给用户加上ip限制
10. --skip-grant-tables //跳过权限系统
11. skip-netword // 不允许 tcp/ip 连接
1.权限管理
2.MySQL 安全问题
3.其他安全设置