背景
当前公司线上使用的版本mysql 5.7版本不断增加,简单记录下5.7用户管理方面新特性
安全认证;
Mysql安全认证的改变主要涉及都mysql.user表。与5.5相比,增加password_expired、password_last_changed、password_lifetime、account_locked,修改plugin字段为not null,默认值mysql_native_password,password字段修改为认证authentication_string加密字段.
1添加新用户:
5.7建议使用create user方式创建用户,grant 方式赋权.
创建
createuser testuser@'%' identified by 'test';
赋权
grantselect,update,delete,insert on test.* totestuser@'%';
收回
revoke delete on test.* from testuser@’%’;
2 密码过期
用户通过default_password_lifetime来设定过期时间。默认0,永久不过期。对于临时用户,以后就可以设定过期日期,便于管理用户。
设定密码180天过期
Set globaldefault_password_lifetime=180;
设置禁止过期
方法1 set global default_password_lifetime=0;
方法2 alter user ‘testuser’@’%’password expire never;
3 账号锁定与解除锁定
alteruser ‘testuser’@’%’ account lock;
alteruser ‘testuser’@’%’ account unlock;
4 系统升级,要特别关注user表结构的升级。5.6->5.7(当前没有5.6版本)
Stopmysql 5.6 实例
替换5.7的mysql二进制版本
使用5.7启动实例
运行mysql_upgrade升级系统表
重启mysql 5.7实例
5.5->5.7,跨度太大。
5 认证改变
5.7.2之前版本使用,使用password的hash valve判断使用的认证类型,5.7.2之后使用 mysql_native_password.
6 安装
5.7建议使用 mysqld –initialize来初始化数据库,放弃之前的mysql_install_db的方式。
后续
Alteruser 语法
https://dev.mysql.com/doc/refman/5.7/en/alter-user.html
create user 语法
http://dev.mysql.com/doc/refman/5.7/en/create-user.html