MySQL DBA MySQL用户管理(四)
MySQL用户管理
理解MySQL连接和查询流程
查询MySQL账户级验证
创建和修改删除账户
授权、修改和撤销用户权限
禁用验证控制
MySQL常用client命令及GUI工具推荐
用户名忘了怎么处理?
实际工作中用户名和密码需要注意什么?
账号安全
账户管理的重要性
在MySQL中可以通过账户控制允许或不允许用户执行操作
可以精细分配权限给不同职能的用户
避免使用root账户
应用不能直接使用root
防止维护期间出错
限制特定权限账户确保数据完整性
允许特定授权账户完成期工作
阻止未经授权的用户访问超出其特权的数据
查看用户账号 :mysql.user
账号验证:mysql_native_password
用户优先精确匹配:'larry'@'%','larry'@'192.168.114.%','larry'@'192.168.114.119';
select user(),current_user();
user()连接用户
current_user() 创建用户
block特定ip连接 processlist host
alter user xxx lock;
设置密码
1.create user ... idengtified by '';
2.set password for xxx;
3.mysqladmin password
4.alter user ... (推荐)
5.update user set
6.grant ...identified by
authentication_string 字典
expire
help alter user
alter user current_user() password expire;
lock
alter user current_user() account lock;
alter user current_user() account unlock;
用户权限
只读用户
开发账号
管理账号
权限
file
process
supper
with grant option -- 级联授权
show privileges;
最小权限授权
show grants for
mysqladmin reload· --flash privileges;
MySQL8.0用户 --不用升级driver的处理方式
[mysqld]
default_authentication_plugin=mysql_native_password
character_set_server=utf8
================================
set names utf8;
create user 'xxx'@'xxx' idengtified with mysql_native_password by '';
grant all privileges on *.* to 'xxx'@'xxx';
create database if exists mydb collate 'utf8_general_ci';
密码忘记的处理
禁用验证控制
skip-grants-table 的风险
同时家skip-network
cp user.* /path/
update
cp xxx
chown mysql:mysql user.*
1.重启
2.kill -HUP `pidof mysqld`
select concat('*',upper(sha1(unhex(sha1('pwd'))))) as password,password('pwd');
echo -n "pwd"|sha1sum|cut -c1-40|xxd -p -r|sha1sum|cut -c1-40|tr '[a-z]' '[A-Z]' 8ASDFAS9ASDFASDF9F9DSFFDSA
strings user.MYD
8.0账号更安全
skip-name-resolve