没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
目录
正文 ..................................................................................................................... 1
1 研究的背景 ................................................................................................... 1
2 研究的目的和意义....................................................................................... 1
3 研究的容 ....................................................................................................... 2
3.1 MySQL 数据库的安全配置.................................................................... 2
3.1.1 系统部安全 .................................................................................. 2
3.1.2 外部网络安全 .............................................................................. 4
3.2 MySQL 用户管理 .................................................................................... 8
3.3 MD5 加密 .............................................................................................. 11
3.3.1 数据库中数据加密的原因....................................................... 11
3.3.2 加密式 ....................................................................................... 12
3.3.3 Md5 加密原理............................................................................ 12
3.3.4 具体算法 ................................................................................... 13
4 总结 ............................................................................................................. 14
参考文献: ....................................................................................................... 15
附录: ............................................................................................................... 15
塔里木大学信息工程学院计算机网络安全基础大作业
MySQL 数据库安全管理
摘要: MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体
系结构的分布式数据库管理系统。它具有功能强、使用简便、管理便、运行速度快、
安全可靠性强等优点,用户可利用多语言编写访问 MySQL 数据库的程序,特别是与 PHP
更是黄金组合,运用十分广泛。由于 MySQL 是多平台的数据库,它的默认配置要考虑
各种情况下都能适用,所以在用户自己的使用环境下应该进行安全加固。用户有责任
维护 MySQL 数据库系统的数据安全性和完整性。
关键词:MYSQL;数据库;数据库安全;访问控制;MD5 加密
正文
MySQL 数据库的安全配置必须从两个面入手,系统部安全和外部网络安全;MySQL
用户管理主要用 grant(授权)和 revoke(撤权)两个 SQL 指令来管理;MD5 在实际中的一
个应用就是对数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信
息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄
露,也不能立即理解这些信息的真正含义。有效的提高了前台和后台的数据安全性。
1 研究的背景
随着计算机技术和信息技术的迅速发展。数据库的应用十分广泛,深入到各个领
域,但随之而来产生了数据的安全问题。
近年来,数据库供应商竞相为大众提供功能丰富的数据库环境,大多数主要系统
都支持 XML、Web 服务、分布式复制、操作系统集成以及其他一些有用的功能。与以前
相比,数据库更加容易遭受到攻击,它已经成为了更有价值的攻击目标,所以需要配
置更多的安全功能,管理也要更加的谨慎。
2 研究的目的和意义
本文对 MySQL 数据库的安全配置、MySQL 用户管理以及使用 MD5 加密提高数据库前
台和后台数据安全性做了详细研究。
由于 MySQL 是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以
用户需要根据具体的环境进行相关的安全配置,通过本文的研究,对如提高数据库的
安全性有很大的帮助。
第 1 页 共 17 页
塔里木大学信息工程学院计算机网络安全基础大作业
3 研究的
容
3.1 MySQL 数据库的安全配置
3.1.1 系统部安全
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
第 2 页 共 17 页
塔里木大学信息工程学院计算机网络安全基础大作业
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
如果这些文件的属主及属性不是这样,请用以下两个命令修正之:
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 还
第 3 页 共 17 页
剩余17页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功