MYSQL数据库系统安全管理

上传人:xmg****18 文档编号:121222021 上传时间:2020-02-19 格式:DOC 页数:23 大小:331.50KB
返回 下载 相关 举报
MYSQL数据库系统安全管理_第1页
第1页 / 共23页
MYSQL数据库系统安全管理_第2页
第2页 / 共23页
MYSQL数据库系统安全管理_第3页
第3页 / 共23页
MYSQL数据库系统安全管理_第4页
第4页 / 共23页
MYSQL数据库系统安全管理_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《MYSQL数据库系统安全管理》由会员分享,可在线阅读,更多相关《MYSQL数据库系统安全管理(23页珍藏版)》请在金锄头文库上搜索。

1、目录 正文 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 是完全网络化的跨平台关系型数据库系统 同时是具有客户机 服务 器体系结构的分布式数据库管理系统 它具有功能

2、强 使用简便 管理方便 运行速 度快 安全可靠性强等优点 用户可利用许多语言编写访问 MySQL 数据库的程序 特别是与 PHP 更是黄金组合 运用十分广泛 由于 MySQL 是多平台的数据库 它的 默认配置要考虑各种情况下都能适用 所以在用户自己的使用环境下应该进行安全加 固 用户有责任维护 MySQL 数据库系统的数据安全性和完整性 关关键词键词 MYSQL 数数据库库 数数据库库安全 访问访问控制 MD5 加密 正文 MySQL 数据库的安全配置必须从两个方面入手 系统内部安全和外部网络安全 MySQL 用户帐号管理主要用 grant 授权 和 revoke 撤权 两个 SQL 指令来管

3、理 MD5 在实际中的一个应用就是对数据库中的用户信息加密 当用户创建一个新的账号或者 专业整理 学习帮手 密码 他的信息不是直接保存到数据库 而是经过一次加密以后再保存 这样 即使 这些信息被泄露 也不能立即理解这些信息的真正含义 有效的提高了前台和后台的 数据安全性 1 研究的背景 随着计算机技术和信息技术的迅速发展 数据库的应用十分广泛 深入到各个领 域 但随之而来产生了数据的安全问题 近年来 数据库供应商竞相为大众提供功能丰富的数据库环境 大多数主要系统 都支持 XML Web 服务 分布式复制 操作系统集成以及其他一些有用的功能 与 以前相比 数据库更加容易遭受到攻击 它已经成为了更

4、有价值的攻击目标 所以需 要配置更多的安全功能 管理也要更加的谨慎 2 研究的目的和意义 本文对 MySQL 数据库的安全配置 MySQL 用户帐号管理以及使用 MD5 加密提 高数据库前台和后台数据安全性做了详细研究 由于 MySQL 是多平台的数据库 它的默认配置要考虑各种情况下都能适用 所 以用户需要根据具体的环境进行相关的安全配置 通过本文的研究 对如何提高数据 库的安全性有很大的帮助 3 研究的内容 3 1 MySQL 数据库的安全配置 3 1 1 系统内部安全 MySQL 安装好 运行了 mysql db install 脚本以后就会建立数据目录和初始化数 据库 如果我们用 MyS

5、QL 源码包安装 而且安装目录是 usr local mysql 那么数据 目录一般会是 usr local mysql var 数据库系统由一系列数据库组成 每个数据库包 专业整理 学习帮手 含一系列数据库表 MySQL 是用数据库名在数据目录建立建立一个数据库目录 各 数据库表分别以数据库表名作为文件名 扩展名分别为 MYD MYI frm 的三个文件 放到数据库目录中 MySQL 的授权表给数据库的访问提供了灵活的权限控制 但是如果本地用户拥 有对库文件的读权限的话 攻击者只需把数据库目录打包拷走 然后拷到自己本机的 数据目录下就能访问窃取的数据库 所以 MySQL 所在的主机的安全性是

6、最首要的问 题 如果主机不安全 被攻击者控制 那么 MySQL 的安全性也无从谈起 其次就是 数据目录和数据文件的安全性 也就是权限设置问题 从 MySQL 主站一些老的 binary 发行版来看 3 21 xx 版本中数据目录的属性是 775 这样非常危险 任何本地用户都可以读数据目录 所以数据库文件很不安全 3 22 xx 版本中数据目录的属性是 770 这种属性也有些危险 本地的同组用户既能读 也能写 所以数据文件也不安全 3 23 xx 版本数据目录的属性是 700 这样就比较好 只有启动数据库的用户可以读写数据库文件 保证了本地数据文件的安全 如果启动 MySQL 数据库的用户是 m

7、ysql 那么像如下的目录和文件的是安全的 请注意数据目录及下面的属性 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 li

8、bexec 专业整理 学习帮手 drwxrwxr x 3 root root 4096 Feb 27 20 07 man 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 10

9、24 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

10、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 如果这些文件的属主及属性不是这样 请用以下两个命令修正之 专业整理

11、 学习帮手 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 图 3 1 2 1 Unix 平台的 user 表

12、Windows 平台的 user 表是这样的 mysql use mysql Database changed mysql select Host User Password Select priv Grant priv from user 专业整理 学习帮手 图 3 1 2 2 Windows 平台的 user 表 实际上 Unix 平台的 MySQL 默认只允许本机才能连接数据库 但是缺省 root 用 户口令是空 所以当务之急是给 root 用户加上口令 给数据库用户加口令有三种方 法 在 shell 提示符下用 mysqladmin 命令来改 root 用户口令 shell mysql

13、admin uroot password test 这样 MySQL 数据库 root 用户的口令就被改成 test 了 用 set password 修改口令 mysql set password for root localhost password test 这时 root 用户的口令就被改成 test 了 直接修改 user 表的 root 用户口令 mysql use mysql mysql update user set password password test where user root mysql flush privileges 这样 MySQL 数据库 root 用

14、户的口令也被改成 test 了 其中最后一句命令 flush privileges 的意思是强制刷新内存授权表 否则用的还是缓冲中的口令 这时非 法用户还可以用 root 用户及空口令登陆 直到重启 MySQL 服务器 我们还看到 user 为空的匿名用户 虽然它在 Unix 平台下没什么权限 但为了安 专业整理 学习帮手 全起见我们应该删除它 mysql delete from user where user Windows 版本 MySQL 的 user 表有很大不同 我们看到 Host 字段除了 localhost 还有是 这里 的意思是允许任意的主机连接 MySQL 服务器 这是非常

15、不安全的 给攻击者造成可乘之机 我们必须删除 Host 字段为 的记录 mysql delete from user where host 默认 root 用户的空密码也是必须修改 三种修改方法和 Unix 平台一样 对 user 表操作以后不要忘了用 flush privileges 来强制刷新内存授权表 这样才能生效 MySQL 的 5 个授权表 user db host tables priv 和 columns priv 提供非常灵 活的安全机制 从 MySQL 3 22 11 开始引入了两条语句 GRANT 和 REVOKE 来创建和 删除用户权限 可以方便的限制哪个用户可以连接服务

16、器 从哪里连接以及连接后可 以做什么操作 在 3 22 11 版本以前的 MySQL 授权机制不完善 和新版本也有较大的不同 建 议升级到最新版本的 MySQL 我们先来了解授权表的结构 MySQL 授权表的结构与内容 mysql desc user user 表是 5 个授权表中最重要的一个 列出可以连接服务器的用户及其加密口令 并且它指定他们有哪种全局 超级用户 权限 在 user 表启用的任何权限均是全局 权限 并适用于所有数据库 所以我们不能给任何用户访问 mysql user 表的权限 权限说明 专业整理 学习帮手 图 3 1 2 3 权限说明 mysql desc db 图 3 1 2 4 数据库 db 表列出数据库 而用户有权限访问它们 在这里指定的权限适用于一个数据 库中的所有表 mysql desc host 专业整理 学习帮手 图 3 1 2 5 host 表 host 表与 db 表结合使用在一个较好层次上控制特定主机对数据库的访问权限 这可 能比单独使用 db 好些 这个表不受 GRANT 和 REVOKE 语句的影响 3 2 MySQL 用户帐号管理 MySQ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号