首页 > 语言 > 关键词  > MySQL最新资讯  > 正文

MySQL数据库安全配置

2008-05-09 09:54 · 稿源:互联网

1、前言

MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序,特别是与PHP更是黄金组合,运用十分广泛。

由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进一步的安全加固。作为一个MySQL的系统管理员,我们有责任维护MySQL数据库系统的数据安全性和完整性。

MySQL数据库的安全配置必须从两个方面入手,系统内部安全和外部网络安全,另外我们还将简单介绍编程时要注意的一些问题以及一些小窍门。

2、系统内部安全

首先简单介绍一下MySQL数据库目录结构。MySQL安装好,运行了mysql_db_install脚本以后就会建立数据目录和初始化数据库。如果我们用MySQL源码包安装,而且安装目录是/usr/local/mysql,那么数据目录一般会是/usr/local/mysql/var。数据库系统由一系列数据库组成,每个数据库包含一系列数据库表。MySQL是用数据库名在数据目录建立建立一个数据库目录,各数据库表分别以数据库表名作为文件名,扩展名分别为MYD、MYI、frm的三个文件放到数据库目录中。

MySQL的授权表给数据库的访问提供了灵活的权限控制,但是如果本地用户拥有对库文件的读权限的话,攻击者只需把数据库目录打包拷走,然后拷到自己本机的数据目录下就能访问窃取的数据库。所以MySQL所在的主机的安全性是最首要的问题,如果主机不安全,被攻击者控制,那么MySQL的安全性也无从谈起。其次就是数据目录和数据文件的安全性,也就是权限设置问题。

从MySQL主站一些老的binary发行版来看,3.21.xx版本中数据目录的属性是775,这样非常危险,任何本地用户都可以读数据目录,所以数据库文件很不安全。3.22.xx版本中数据目录的属性是770,这种属性也有些危险,本地的同组用户既能读也能写,所以数据文件也不安全。3.23.xx版本数据目录的属性是700,这样就比较好,只有启动数据库的用户可以读写数据库文件,保证了本地数据文件的安全。

如果启动MySQL数据库的用户是mysql,那么象如下的目录和文件的是安全的,请注意数据目录及下面的属性:

shell>ls -l /usr/local/mysql
total 40
drwxrwxr-x 2 root root 4096 Feb 27 20:07 bin
drwxrwxr-x 3 root root 4096 Feb 27 20:07 include
drwxrwxr-x 2 root root 4096 Feb 27 20:07 info
drwxrwxr-x 3 root root 4096 Feb 27 20:07 lib
drwxrwxr-x 2 root root 4096 Feb 27 20:07 libexec
drwxrwxr-x 3 root root 4096 Feb 27 20:07 man
drwxrwxr-x 6 root root 4096 Feb 27 20:07 mysql-test
drwxrwxr-x 3 root root 4096 Feb 27 20:07 share
drwxrwxr-x 7 root root 4096 Feb 27 20:07 sql-bench
drwx------ 4 mysql mysql 4096 Feb 27 20:07 var
shell>ls -l /usr/local/mysql/var
total 8
drwx------ 2 mysql mysql 4096 Feb 27 20:08 mysql
drwx------ 2 mysql mysql 4096 Feb 27 20:08 test
shell>ls -l /usr/local/mysql/var/mysql
total 104
-rw------- 1 mysql mysql 0 Feb 27 20:08 columns_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 columns_priv.MYI
-rw------- 1 mysql mysql 8778 Feb 27 20:08 columns_priv.frm
-rw------- 1 mysql mysql 302 Feb 27 20:08 db.MYD
-rw------- 1 mysql mysql 3072 Feb 27 20:08 db.MYI
-rw------- 1 mysql mysql 8982 Feb 27 20:08 db.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 func.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 func.MYI
-rw------- 1 mysql mysql 8641 Feb 27 20:08 func.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 host.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 host.MYI
-rw------- 1 mysql mysql 8958 Feb 27 20:08 host.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 tables_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 tables_priv.MYI
-rw------- 1 mysql mysql 8877 Feb 27 20:08 tables_priv.frm
-rw------- 1 mysql mysql 428 Feb 27 20:08 user.MYD
-rw------- 1 mysql mysql 2048 Feb 27 20:08 user.MYI
-rw------- 1 mysql mysql 9148 Feb 27 20:08 user.frm

如果这些文件的属主及属性不是这样,请用以下两个命令修正之:

shell>chown -R mysql.mysql /usr/local/mysql/var
shell>chmod -R go-rwx /usr/local/mysql/var

用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。MySQL从3.23.15版本开始时作了小小的改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。如果非要用root用户来启动,必须加上--user=root的参数(./safe_mysqld --user=root &)。因为MySQL中有LOAD DATA INFILE和SELECT ... INTO OUTFILE的SQL语句,如果是root用户启动了MySQL服务器,那么,数据库用户就拥有了root用户的写权限。不过MySQL还是做了一些限制的,比如LOAD DATA INFILE只能读全局可读的文件,SELECT ... INTO OUTFILE不能覆盖已经存在的文件。

本地的日志文件也不能忽视,包括shell的日志和MySQL自己的日志。有些用户在本地登陆或备份数据库的时候为了图方便,有时会在命令行参数里直接带了数据库的密码,如:

shell>/usr/local/mysql/bin/mysqldump -uroot -ptest test>test.sql
shell>/usr/local/mysql/bin/mysql -uroot -ptest

这些命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏。用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外这两个文件我们也应该不让它记录我们的操作,以防万一。

shell>rm .bash_history .mysql_history
shell>ln -s /dev/null .bash_history
shell>ln -s /dev/null .mysql_history

上门这两条命令把这两个文件链接到/dev/null,那么我们的操作就不会被记录到这两个文件里了。

举报

  • 相关推荐
  • AI驱动全域进化,金仓数据库以“融合”重构数据基座

    7月15日,电科金仓在京举办"融合进化+智领未来"主题产品发布会,推出多款AI时代数据库产品:KES V92025融合数据库具备多语法体系兼容、多集群架构等特性,性能提升30%;KEMCC统一管控平台实现跨云环境数据库管理;云数据库AI版集成高性能硬件与AI大模型;KFS Ultra智能数据集成平台支持百种数据源。中国人民大学教授王珊指出,数据库与AI深度结合已成释放数据价值关�

  • O域核心!金仓数据库支撑海南移动核心故障管理系统升级上线

    中国移动海南公司成功升级国产化核心故障管理系统"O域",采用金仓数据库技术支持。该系统创新构建五位一体监控体系,实现故障处理效率指数级提升。通过全栈国产化突破,采用分布式数据核心架构,实现99.999%高可用性和毫秒级响应。在2024年超强台风"摩羯"登陆期间,系统凭借同城双中心灾备架构稳定运行,保障了通信命脉。金仓数据库通过PLSQL优化、固定缓冲池等核心技术,使系统性能显著提升:告警分析速度提升450%,拓朴查询效率跃升644%,历史数据清理效率提高7倍,存储空间降低12%。

  • 万里数据库GreatDB亮相上合组织数字经济论坛 与哈萨克斯坦人工智能发展协会签署合作协议

    2025年7月11日,上海合作组织数字经济论坛在天津开幕。论坛由国家数据局与天津市政府联合主办,丁薛祥副总 理出席并致辞。会上,万里数据库与哈萨克斯坦人工智能发展协会签署合作协议,推出GreatDB上合版数据库产品。该产品具有安全可信、生态兼容、高性能等优势,是中国首个进入上合框架的标准化数据库产品。论坛汇聚600余位中外政要、企业代表和专家学者,共商数�

  • 金仓数据库26周年|淬火砺重器,万里再扬帆

    金仓数据库26年发展历程:从萨师煊教授70年代引入数据库概念,到王珊教授团队1999年创立金仓公司实现产业化突破,见证了中国数据库从无到有的发展。金仓坚持自主创新,打造KES融合数据库产品体系,拥有700多项专利,服务金融、能源等国家重点行业,装机量超百万套。公司构建产学研生态,培养数万名专业人才,推动国产数据库生态建设。站在新起点,金仓将继续以自主可控技术支撑千行百业数字化转型,助力数字中国建设。

  • 忆联 Docker+MySQL 流控方案:打造安全高效存储底座,释放 AI 极致性能

    文章探讨了在AI时代背景下,基于Docker部署MySQL数据库的高效解决方案。通过Docker容器化技术,MySQL实现了灵活部署、资源高效利用和稳定隔离性,成为AI应用的首选数据库方案。测试结果显示,采用PCIe5.0企业级SSD配合Namespace技术和QoS优化策略,能精准控制性能偏差在2%以内,在混合读写场景下更可控制在1%以内。该方案显著提升了存储资源管理效率,为AI应用提供稳定可靠的数据存储支持,同时降低企业TCO成本,推动数据价值释放。

  • 最新AI模型哪里看?8个国内优质AI模型库与获取渠道盘点

    文章探讨大模型API价格战背景下,开源模型+本地微调成为降本增效的新趋势。当前典型工作流已转变为:GitHub找代码→Hugging Face找权重→国内镜像站下载→本地/云端微调。模型库成为生产链起点而非单纯资源站。建议从三个维度筛选模型:1)协议类型决定商用权限;2)框架兼容性避免格式转换;3)场景标签匹配度节省检索时间。推荐8个国内优质模型获取渠道,包括AIbase(2.3万+模型)、阿里ModelScope(社区活跃)、百度EasyDL(零代码友好)等,各平台在电商、语音、交通等垂直领域各有优势。最后给出快速检索建议:商用需求优先查协议,垂直场景找专业平台,追踪更新可订阅RSS。

  • 领创政企工作台保护涉密场景数据安全,助力机关单位数字化建设

    文章主要介绍了党政军机关单位在使用手机、平板等移动设备时面临的信息安全、保密管理等挑战。领创科技为涉密单位定制军用平板解决方案,采用华为C7平板,通过专属桌面、应用白名单、网络隔离等技术手段确保数据安全。该方案已在中国航天科工集团等部队单位成功应用,实现专机专用、精准管控应用安装与卸载,筑牢信息安全防线。此外,领创的定制化方案还服务于

  • 首发8300mAh全球最大电池!荣耀X70今晚发布:配置汇总来了

    荣耀X70将在今晚19:00正式发布,快科技提前给大家汇总一波配置信息。 首先这款产品最大的亮点就是续航规格,拥有8300mAh全球最大电池,而且通过青海湖电池的硅负极技术提升能量密度,整机还保持了比较轻薄的机身。 共有两个版本,机身分别是7.76mm/193g、7.96mm/199g。 充电规格也是同价位天花板,支持80W有线快充,甚至顶配版还支持80W无线快充。

  • 从全自动化干细胞库迈向智能产业链:博雅生命引领产业风向标

    全球细胞治疗市场呈现爆发式增长,预计2026年行业规模将突破数百亿美元。技术进步、老龄化疾病谱变化及精准医疗需求是主要驱动力。博雅生命作为行业代表企业,2012年率先打造全自动干细胞库并通过国际AABB认证,持续12年保持认证。其自动化技术平台通过机械臂模拟人工操作,提升细胞处理精准度和效率,实现从样本输入到产品输出的全流程自动化,降低污染风险。公司构建了"自动化医疗器械-生命银行-新药研发"的完整产业链,推动细胞治疗产业化发展。未来,博雅将在干细胞临床转化、创新药物研发等领域全面拓展,以科技创新改善人类健康。

  • 2025年国外AI工具排名TOP10|全球热门AI工具全面解析 + 最全AI工具库推荐

    文章介绍了2025年国外AI工具Top10榜单,包括ChatGPT(对话生成)、Claude(长文本处理)、Midjourney(图像生成)、Gemini(多模态生成)、GitHub C opilot(编程辅助)、Notion AI(知识管理)、Perplexity AI(智能搜索)、Runway ML(视频编辑)、ElevenLabs(语音合成)和Descript(音视频编辑)。推荐使用AIbase平台一站式查找和管理AI工具,该平台收录上千款工具,支持智能搜索分类,提供中文界面和实时更新。建议用户关�