一、操作系统层安全防护
SHOW VARIABLES LIKE 'datadir'查询)权限为750,属主为mysql:mysql;配置文件(如/etc/my.cnf)权限为640,属主为root:mysql;日志文件(如/var/log/mysql/error.log)权限为660,属主为mysql:mysql,防止未授权访问。semanage fcontext -a -t mysqld_db_t "/mysql/data(/.*)?" + restorecon -Rv /var/lib/mysql)或AppArmor(aa-enforce /etc/apparmor.d/usr.sbin.mysqld),限制MySQL进程的访问权限。二、用户与权限管理
SELECT、INSERT),避免使用GRANT ALL PRIVILEGES。例如,为仅需读取数据的用户执行:CREATE USER 'readonly_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT SELECT ON database_name.* TO 'readonly_user'@'localhost';。SELECT user, host FROM mysql.user;查看所有用户,用SHOW GRANTS FOR 'username'@'host';检查权限,及时删除不活跃或不再需要的用户。validate_password插件(INSTALL PLUGIN validate_password SONAME 'validate_password.so';),设置密码长度(如SET GLOBAL validate_password.length = 12;)、复杂度(如包含大小写字母、数字、特殊字符),强制定期更换密码。三、网络安全防护
my.cnf配置文件,设置bind-address = 10.0.1.100(仅绑定内网IP),禁用远程root登录(REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';),仅允许特定IP访问数据库。openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt),配置my.cnf:[mysqld] ssl-cert=/path/to/server.crt ssl-key=/path/to/server.key require_secure_transport=ON,客户端连接时指定证书(mysql -h host -u user -p --ssl-ca=/path/to/ca.crt --ssl-cert=/path/to/client.crt --ssl-key=/path/to/client.key),确保数据传输加密。四、数据加密防护
SHOW STATUS LIKE 'Ssl_cipher';验证加密状态。AES_ENCRYPT(INSERT INTO users SET password = AES_ENCRYPT('user_password', 'secret_key');)和AES_DECRYPT(SELECT AES_DECRYPT(password, 'secret_key') FROM users WHERE username = 'user1';)加密敏感字段。keyring_file插件(INSTALL PLUGIN keyring_file SONAME 'keyring_file.so';)创建加密表空间(CREATE TABLESPACE encrypted_tablespace ADD DATAFILE 'encrypted_file.ibd' ENCRYPTION='Y';),将表存储在加密表空间中,即使数据文件泄露也无法直接读取。openssl加密备份文件(mysqldump -u user -p database_name | openssl enc -aes-256-cbc -salt -out backup.sql.enc -k "encryption_password"),或使用innobackupex工具的--encrypt选项,确保备份数据安全。五、日志与监控
audit_log插件(企业版)或配置my.cnf(plugin-load-add = audit_log.so; audit_log_format = JSON; audit_log_policy = ALL)记录所有数据库操作(如登录、查询、权限变更),便于追溯安全事件。Percona Monitoring and Management (PMM)、Nagios或Zabbix监控MySQL运行状态(如连接数、慢查询、错误日志),设置告警规则(如频繁的失败登录尝试),及时发现异常行为。六、应急响应与恢复
mysqldump)和增量备份(xtrabackup),将备份文件存储在异地或云存储中,确保数据可恢复。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。