身份鉴别 测评项: a)  应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。 MySQL通常不存在空口令账户,弱口令须通过 访谈 确定。 # MySQL 5.7及更低版本本命令行不适用。 select * from mysql.user where length(authentication_string) = 0 or authentication_string is null; MySQL通常未预装 validate_password ,须先核查是否安装插件后再核查相关参数。 云服务客户租用数据库时通过云控制台查看,不适用本条命令。 # 核查插件形式的validate_password,从MySQL 5.7开始支持 select * from information_schema.plugins where plugin_name = 'validate_password'; # 核查模块形式的validate_password,从MySQL 8.0.2开始支持 select * from mysql.component; # 核查MySQL当前口令策略,默认策略符合要求。 show variables LIKE 'validate_password%'; 核查效果:(以 插件 形式安装validate_password,从MySQL 5.7开始支持) 核查效果:(以 模块 形式安装validate_password,从MySQL 8.0.2开始支持) MySQL账户通常无法重复,账户名具有唯一性;MySQL支持单个用户名配置口令过期策略,仅在 缺省 时由全局配置确定。云服务客户租用数据库时通过云控制台查看,不适用本条命令。 # 查看MySQL全局口令过期策略。 show variables like 'default_password_lifetime'; # 查看MySQL 5.7最近口令更换情况。 select user, host, password_last_changed, password_lifetime from mysql.user; # 查看MySQL 8.0最近口令更换情况。(支持限制使用重复密码) select user, host, password_last_changed, password_lifetime,password_expired,password_reuse_history,password_reuse_time from mysql.user; 核查效果:(在MySQL 5.7) 核查效果:(在MySQL 8.0) 测评项: b)  应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施。 MySQL 低版本不支持 登录失败锁定策略,从MySQL 8.0开始支持单用户设置失败锁定策略,从MySQL 8.1开始支持锁定时长限制至小时或分钟。 select host,user,User_attributes from mysql.user; # 核查 interactive_timeout参数 show variables like '%timeout'; 测评项: c)  当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。 云服务客户租用数据库时仅核查当前会话,其他信息通过云控制台查看。 # 查看指定用户名(如root)是否强制使用TLS传输 select user, host, ssl_type from mysql.user where user = 'root'; # 查看是否全局开启强制TLS传输 show variables like 'require_secure_transport'; # 查看MySQL是否已开启TLS传输 show variables like 'have_ssl'; # 查看MySQL当前TLS相关配置信息 show global variables like 'ssl_cipher'; show global variables like 'ssl_ca'; show global variables like 'ssl_cert'; show global variables like 'ssl_key'; # (重点)查看当前会话是否采用TLS传输 show session status like 'ssl_cipher'; show session status LIKE 'Ssl_cipher_list'; show session status like 'ssl_version'; # 查看MySQL当前支持的TLS版本 show variables like 'tls_version'; 测评项: d)  应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别, 且其中一种鉴别技术至少应使用密码技术来实现。 从MySQL 8.0.27 起,企业版支持 FIDO ,社区版支持 TOTP ,可在完成用户名+口令后支持二次验证。基于实际生产环境,默认不支持。