- 设置密码复杂度校验
在MySQL配置文件my.cnf中添加以下行:
validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: on
validate_password_dictionary_file:
validate_password_length:8
validate_password_mixed_case_count:1
validate_password_number_count:1
validate_password_policy:STRONG
validate_password_special_char_count:1
其中,
validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。
validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
validate_password_length:密码最小长度。
validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count:密码至少要包含的数字个数。
validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
validate_password_special_char_count:密码至少要包含的特殊字符数。
其中,关于validate_password_policy-密码强度检查等级:
0/LOW:只检查长度。
1/MEDIUM:检查长度、数字、大小写、特殊字符。
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
- IP限制访问
在MySQL配置文件my.cnf中添加以下行:
bind-address=127.0.0.1
其中,bind-address指定MySQL监听的IP地址,如果只允许本地访问,可以设置为127.0.0.1。
- 密码错误限制
在MySQL配置文件my.cnf中添加以下行:
max_connect_errors=5
其中,max_connect_errors指定允许的最大连接错误次数。
- 设置密码过期时间
在MySQL中,可以使用密码过期策略来强制用户定期更改密码。可以通过以下步骤设置密码过期时间为90天:
ALTER USER 'user'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
其中,‘user’@'localhost’指定要设置密码过期时间的用户,INTERVAL 90 DAY指定密码过期时间为90天。
#或者使用另一种方式:
修改MySQL配置文件my.ini,在[mysqld]下添加以下内容:
default_password_lifetime=90
重启MySQL服务使配置生效。
所有用户都使用同一个策略,可以通过以下步骤实现:
登录MySQL,创建一个新用户:
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
创建一个新的密码策略:
CREATE PROFILE 'testprofile' LIMIT
PASSWORD_LIFE_TIME 90
PASSWORD_LOCK_TIME 1
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 10
FAILED_LOGIN_ATTEMPTS 5;
将新用户与新的密码策略关联:
ALTER USER 'testuser'@'localhost' PROFILE 'testprofile';
重启MySQL服务使配置生效。
- 只允许几个IP访问数据库
可以通过MySQL的访问控制功能来限制允许访问数据库的IP地址。可以通过以下步骤设置只允许几个IP访问数据库:
GRANT ALL PRIVILEGES ON database.* TO 'user'@'ip1' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database.* TO 'user'@'ip2' IDENTIFIED BY 'password';
REVOKE ALL PRIVILEGES ON database.* FROM 'user'@'%';
其中,database指定要授权的数据库,‘user’@‘ip1’和’user’@'ip2’指定允许访问数据库的IP地址,'password’指定用户的密码。最后一行REVOKE语句是为了撤销所有其他IP地址的访问权限。