本文转载自微信公众号《MySQL技术》,作者MySQL技术。转载本文请联系MySQL技术公众号。前言数据库作为数据存储的载体,在程序开发中起着至关重要的作用。近年来,随着各类安全事件的发生,数据安全逐渐受到重视。平等保护评估或各种系统安全评估中也增加了数据库安全相关的要求。本文将以MySQL为例,分享一些数据库安全加固的方法。一、数据安全的重要性数据安全是指保护数据不被有意或无意地传输、泄露、破坏和未经许可修改,是程序、数据等信息安全的重要标志。即保护数据不被破坏或泄露,不允许非法修改,防止非法访问。从理论上讲,数据安全是信息系统建设的基石,数据是信息系统保护的首要目标。如果数据不受保护,信息系统将失去其应有的意义。数据因其巨大的价值和变现的便利性,成为黑客直接攻击的首要目标。近期也出现多起数据库系统被勒索或挖矿的案例。数据安全具有机密性、完整性和可用性三个特征:机密性:指对数据进行加密,只有授权人员才能使用,保证数据在流通过程中不被窃取。包括网络传输保密性和数据存储保密性。完整性:指数据不能被擅自修改,保证数据在存储和传输过程中不被篡改、不被破坏、不被窃取、不丢失。可用性:指系统和网络为授权的合法用户提供的正常服务。不要因为数据泄露保护而拒绝千里之外的合法用户。国家也非常重视数据安全。2021年6月10日,第十??三届全国人民代表大会常务委员会第二十九次会议通过?,自2021年9月1日起施行。自此,数据安全问题也有了法可依。2、安全加固方法那么我们应该如何进行数据库安全加固呢?从数据安全的三个特性出发,我们或许可以找到新的思路,即保证数据的机密性、完整性和可用性。凡是有利于这三个特性的方法都可以作为安全加固的方法。笔者认为,安全是多环节层层防护、协同作用的结果。数据安全加固不仅仅是数据库单一层面的问题,还需要从操作系统、底层存储、终端等多个层面考虑。下面,笔者将从这几个层面来分享一些数据库安全加固的方法。当然,笔者并非安全相关专业人士,一些建议仅供参考。操作系统层面(主机层):做好系统用户身份认证,不使用弱口令,定期更换。开启登录失败处理功能,限制ip重复登录。做好访问控制,制定安全策略,控制用户对资源的访问权限。配置防火墙策略,进行安全审计并保留审计日志记录。存储层:有存储冗余策略。选择合适的磁盘阵列技术。定期检查存储以避免磁盘坏道。数据库层:以独立的系统用户身份运行mysql服务。及时发现新的安全隐患,应用补丁或升级版本。配置数据库账号密码策略,不要使用弱密码。数据库账号的权限尽量小,权限分开。禁止外网访问数据库,限制数据库账号ip登录。尽量完善数据库的高可用架构,最好是主动一点。有完整的周期性备份策略,备份文件可以异地保存。增加数据库审计,对数据库流量或日志审计设置告警通知机制。程序层:敏感数据加密存储和传输。做好代码安全检测,防止恶意传参和SQL注入。应用系统不使用普通的管理员帐号和密码。总结:人类已经进入大数据时代,数据的重要性不言而喻,尤其是在金融、政府、医疗等系统中。本文从几个层面出发,分享一些数据库安全加固的建议。希望大家能够对数据安全有一个基本的认识,数据安全要引起重视。
