当前位置:首页 > 日记 > 正文

MySQL安全指南(1)(转)

MySQL安全指南(1)(转)
您正在查看的Oracle教程是MySQL安全指南(1)。MySQL安全指南
作者:Yan Zi
作为MySQL系统管理员,您有责任维护MySQL数据库系统的数据安全性和完整性,本文主要介绍如何建立一个安全的MySQL系统,从系统内部和外部两个角度为您提供指导。

本文主要考虑以下安全问题:

为什么安全是重要的,你应该防范这些攻击吗
服务器面临的风险(内部安全)以及如何处理
什么是客户端风险(外部安全)连接到服务器,以及如何处理它
MySQL管理员有责任确保数据库内容的安全,使这些数据记录只能由授权用户访问,这涉及到数据库系统的内部安全和外部安全。
内部安全问题的文件系统级的问题,这是防止MySQL数据目录(datadir)被那些帐户在服务器主机的人攻击(合法或被盗)。如果该数据目录内容的权限过于理所当然,使每个人可以简单地替换文件对应的数据库表,然后是确保授权表的适当的控制由客户端通过网络毫无意义。

External security concerns the problem of connecting clients to servers through external network, namely, protecting MySQL servers from attacks from servers connected to the network.You must set up the MySQL authorization table (grant table) so that they do not allow access to database contents managed by the server unless effective user names and passwords are provided.

下面详细介绍了如何设置文件系统和授权表MySQL来实现MySQL的两级安全性。
内部安全——确保数据目录访问的安全性
MySQL服务器提供了一个灵活的权限系统通过授权表的mysql数据库,您可以设置表的内容,允许或拒绝用户访问数据库,为您提供防止未经授权的访问你的数据库的网络安全的攻击手段,但如果其他用户可以直接访问主机上的内容数据目录,有助于建立一个良好的安全没有访问数据库通过网络给你,除非你知道你是唯一的用户登录到MySQL服务器主机,或者你需要关心其他用户在这台机器上获取数据目录的可能性。

以下是你应该保护的:

数据库文件,很明显,您希望维护服务器管理的数据库的私密性,数据库所有者通常应该考虑数据库内容的安全性。即使他们不想这样做,他们也应该考虑数据库内容的开放性,而不是通过坏数据目录的安全性来暴露它们。
日志文件。一般和更新日志必须是安全的,因为它们包含查询文本。任何访问日志文件的人都可以监视数据库的操作。
日志文件的安全性是考虑的重点如格兰特和设置密码也被记录在查询和更新日志,通常包含文字的敏感的查询,包括密码(密码加密使用MySQL,但它已完成设置后使用连接在未来。设置密码的过程就像是一个查询如格兰特或设置密码,这些查询记录在日志文件中的纯文本形式,如果一个攻击者像读取权限的日常文件,只需要运行在日志文件中找到的话像格兰特和grep寻找敏感信息的密码。
显然,你不希望其他用户在服务器主机写入数据库目录文件的权限,因为他们可以重写你的身份文件或数据库表文件的读取权限,但也很危险。如果数据库表文件可以读取,窃取文件和MySQL本身,也是麻烦的表的内容的纯文本显示,为什么因为你必须做以下事情:

在服务器主机上安装您自己的特殊MySQL服务器,但是有一个与官方服务器版本不同的不同端口、套接字和数据目录。
运行mysql_install_db初始化你的数据目录,它允许你访问你的服务器,MySQL root用户。因此,您完全控制了服务器访问机制,并且它还建立了一个测试数据库。
它将对应于要窃取表文件复制到服务器的数据库目录的测试目录。
启动您的服务器,您可以随意访问数据库表,并从测试显示表,您有一个被盗的表的副本,并选择*显示其中任何一个的所有内容。
如果您真的很恶毒,您将向服务器的任何匿名用户公开您的权限,这样任何人都可以从任何地方访问您的测试数据库。
想想看,从相反的角度来看,你希望别人这样对你吗当然不是!您可以通过在数据库目录中执行ls - L命令来确定数据库是否包含不安全的文件和目录。查找具有组和其他用户权限设置的文件和目录。

U3000
%1 - L
总10148
11轮1024 drwxrwxr-x mysqladm 5月8日12:20。
drwxr-xr-x 22根轮512 5月8日13:31 ..
drwx ------ 2 mysqladm mysqlgrp 512 4月16日十五57动物园
2轮512 drwxrwxr-x mysqladm 1月25日20:40 MySQL
7轮512月311998日drwxrwxr-x mysqladm SQL台
2轮1536 drwxrwxr-x mysqladm 5月6日06:11试验
drwx ------ 2 mysqladm mysqlgrp 1024 5月8日18:43 TMP
的…
正如您所看到的,一些数据库拥有正确的权限,而其他数据库则不是这样。这种情况是一段时间的结果。(注意,更严格的目录menageria和TMP有接近的日期)。MySQL的当前版本确保这些文件只能通过运行服务器的用户阅读。

让我们修复这些权限,以便它们只能由服务器用户访问。您的主要保护工具来自UNIX文件系统本身和模式工具提供的安装文件和目录:

进入目录
CD datadir %

你可以设置所有的帐户是用来运行所有文件的数据目录下的服务器(你必须根执行这一步)。在这篇文章中,mysqladm和mysqlgrp作为用户名和组名的帐户,你可以使用下面的命令来改变主:
# chown mysqladm.mysqlgrp。

发现-跟踪-打印# D型。| xargs chown mysqladm.mysqlgrp

设置你的数据目录和数据库目录的模式使得他们只有mysqladm读取,防止其他用户访问您的数据库目录的内容,你可以运行下列命令之一根或mysqladm。
% chmod -R去rwx。

查找-后续类型D打印%。| xargs chmod去rwx

对数据目录的内容的掌握和图式是由mysqladm。现在,你应该确保你总是运行服务器与mysqladm用户,因为现在这是唯一的用户访问数据库目录的权限(除了根)。
完成这些设置后,您最终将获得以下数据目录权限:

%1 - L
总10148
drwxrwx --- 11 mysqladm mysqlgrp 1024 5月8日12:20。
drwxr-xr-x 22根轮512 5月8日13:31 ..
drwx ------ 2 mysqladm mysqlgrp 512 4月16日十五57动物园
Oracle教程,是在下一页上看到drwx ------ 2 mysqladm { 1 }下一页{ 2 }是MySQL安全指南(1)。Mysqlgrp 512年1月25日20:40 MySQL
drwx ------ 7 mysqladm mysqlgrp 512 Aug 311998 SQL台
drwx ------ 2 mysqladm mysqlgrp 1536 5月6日06:11试验
drwx ------ 2 mysqladm mysqlgrp 1024 5月8日18:43 TMP
的…
二、外部安全-安全的网络访问安全
MySQL的安全系统是灵活的,允许你以各种方式设置用户权限。在一般情况下,SQL GRANT语句和REVOKE语句可以使用标准做为你修改控制客户端访问授权表,然而,你可以通过一个旧版本不支持这些陈述MySQL(在3.22.11这些陈述不工作),或者你可能找不到工作,你想要的用户权限。在这种情况下,结构的理解和如何使用MySQL服务器的授权书,他们决定访问的帮助,这种理解允许你直接修改授权表,删除或修改用户的权限,它还允许你检查在诊断表的权限。

关于如何管理用户帐户,请参见mysql的用户管理。对于授予和撤消语句的详细描述,请参见MySQL参考手册。

2.1 MySQL授权表的结构和内容
通过网络服务器的客户端对MySQL数据库的访问是通过授权表的内容的控制。这些表位于MySQL数据库并初始化的MySQL第一安装期间(运行mysql_install_db脚本)。在授权表5表:用户、数据库、主机、tables_priv,和columns_priv。

表1用户、DB和主机授权表结构
访问范围列

用户数据库的主机
主机主机
用户数据库DB
用户密码
数据库表权限列
alter_priv alter_priv alter_priv
create_priv create_priv create_priv
delete_priv delete_priv delete_priv
drop_priv drop_priv drop_priv
index_priv index_priv index_priv
insert_priv insert_priv insert_priv
references_priv references_priv references_priv
select_priv select_priv select_priv
update_priv update_priv update_priv
file_priv grant_priv grant_priv
grant_priv
process_priv
reload_priv
shutdown_priv
U3000
表2和表tables_priv columns_priv所有权结构

访问范围列
tables_priv columns_priv
主机
Db Db
用户
table_name table_name
column_name
许可柱
table_priv column_priv

授权表格的内容如下所示:

用户表
用户表中列出的用户和密码,就可以连接到服务器,并指定什么样的全球(超级用户)的权限他们。任何权限在用户表中启用全局权限和适用于所有数据库。例如,如果您已经启用删除权限,这里列出的用户可以从任何表中删除记录,所以仔细想想你之前。
表数据库
DB表列出了数据库,用户有权访问它们。这里指定的权限适用于数据库中的所有表。
主机表
主机表与DB表相结合,将某个主机的访问权限控制在一个更好的级别上,这可能比单独使用DB更好。这个表不受授权和撤销语句的影响,所以您可能会发现您根本不使用它。
tables_priv表
的tables_priv表指定表级权限,一个权限的规定适用于所有列一个表。
columns_priv表
columns_priv表的指定列级权限。指定的权限,这是适用于一个特定的表的列。
在用户设置中,不需要设置赠款,我们将讨论如何授予报表来修改这些表,以及如何通过直接修改授权来表达相同的效果。

的tables_priv和columns_priv表介绍了MySQL 3.22.11版本(在GRANT语句相同)。如果你有一个早期版本的mysql,mysql数据库只有用户,数据库,和主机表。如果你升级旧版本3.22.11或更新,没有tables_priv和columns_priv表,运行mysql_fix_privileges_tables脚本来创建它们。

MySQL没有rows_priv表因为它没有例如提供记录级权限,,你不能限制用户的行包含表中的特定列值。如果你需要这种能力,你必须使用应用程序提供的。如果你想执行该记录级锁,你可以用get_lock做()函数。

授权表包含两列:确定何时使用权限范围,以及确定授予哪个权限的权限列。

2.1.1授权表范围列
当使用权限在指定表的授权表范围列表。每个授权表条目包含用户和主机列时指定的权限应用到一个给定的从一个给定的主机用户的连接,其他表的列包含额外的范围,如含有DB列显示哪个数据库的权限应用对数据库表的tables_priv。同样,columns_priv表包含的范围和领域,将范围缩小到一个特定的数据库中的表或一个特定的表的列。

2.1.2授权表的权限列
授权表还包含权限列,指出了该列指定的用户所拥有的权限。支持mysql权限如下表所示。表使用GRANT语句的权限名称,在用户、权限的列数据库的绝大多数的名字,和主机表显然与GRANT语句相关。例如,select_priv对应选择权限。
{ 1 } { 2 }的最后一页

相关文章

Windows7系统宽屏游戏黑边框的解决

Windows7系统宽屏游戏黑边框的解决

系统,解决方案,边框,宽屏,游戏,点评:爱这款游戏的玩家有点头疼,安装了Windows 7系统,宽屏显示屏分辨率是用来玩一些老游戏(如街头篮球)。 虽然这套新的Windows 7的推出可以有效避免使用低分辨率的游戏LED屏幕。但是关于两个大黑框看起来真的很讨…

在WindowsXP安装直接攻击的全过程

在WindowsXP安装直接攻击的全过程

安装,全过程,电脑软件,WindowsXP,19、网络设置、典型设置一般选择(典型设置)。如果需要其它协议如IPX,NetBEUI,等等,自定义设置(自定义)下面的。这可以在未来网络的性质改变了,不需要在这里设置。内存维修连锁加盟的CPU失败 此时,安装完成了!…

win7的更新(补丁)不能下载了一半。

win7的更新(补丁)不能下载了一半。

不能下载,补丁,电脑软件,问题: 当我的补丁win7系统,下载一半的更新文件无法下载,和电脑不能正常关机。关闭系统表明安装程序并没有关闭电源。稍后,强制关机和重新启动,系统更新程序的使用仍然无法继续更新。我不知道该怎么做。 答案uff1a 根据…

sistray是sistray.exe-使用

sistray是sistray.exe-使用

电脑软件,sistray,exe,点评:sistray.exe是SIS视频输出设备相关的配置和诊断程序 进程文件:sistray或sistray.exe 进程名称:硅集成系统sistray 过程类别:安全风险的过程 英文描述: Sistray.exe是安装在SIS视频输出设备的硬件驱动程序,并提供额外…

手拉手教你打印出PDF(因为可以简单

手拉手教你打印出PDF(因为可以简单

教你,手拉手,简单,电脑软件,PDF,上课时用的今天被称为FPDF,和FPDF,PHP类,允许你使用纯PHP(更具体地说,PDFlib)来生成PDF文件,它显示了在PHP类编程语言的PDF文档的过程。它的特点是可选择的细胞大小、页面格式、页边距、页眉页脚管理,自动分页,自动换…

oracle游标使用概述

oracle游标使用概述

游标,电脑软件,oracle,Oracle游标分为显示游标和隐式游标。 显示游标(显式游标):在查询中定义的游标程序中定义的游标称为显示游标。 隐式游标(隐式游标)是在Oracle系统中使用时自动分配的游标,它用于非同步更新/删除语句中。 1。显示游标 1。使…

php的memcache的学习笔记

php的memcache的学习笔记

学习笔记,电脑软件,php,memcache,1、安装在Win,memcached D安装 开始赢,memcached D开始 关闭,memcached D停止 1_1,访问memcache的三种方式 memcache memcached PHP(不依赖于扩展套接字操作) 2、Memcache缓存访问系统(功能)=。 安装memcache扩展…

重装Windows系统修复FedoraLinux的

重装Windows系统修复FedoraLinux的

启动,系统修复,重装,电脑软件,Windows,意见:1。Android操作系统Linux的安装磁盘驱动器,光盘驱动器,光盘引导 选择(rescuehellip;hellip)项目后的2。等安装界面(将有提示) 三.安装进口界面出现,然后会出现一个提示在回来的路上,当有提示配置网络,也可以…

什么是shine.exe-使用闪耀

什么是shine.exe-使用闪耀

电脑软件,shine,exe,点评:shine.exe是happylow病毒相关程序。该病毒允许攻击者访问你的计算机,窃取密码和个人数据 进程文件:光泽或shine.exe 进程名称:happylow病毒 过程类别:安全风险的过程 英文描述: 是一个过程,登记为happylow病毒。此特洛…

bargains.exe的过程是怎样的

bargains.exe的过程是怎样的

的是,过程,是怎样,电脑软件,bargains,评论:对bargains.exe工艺简介 进程文件:合同、bargains.exe 过程名称:廉价间谍软件 过程类别:系统过程 英文描述: Bargains.exe是一个生成的弹出广告间谍软件和广告你的计算机使用的精确分析。这个程序是…

夏天比赛打得不顺。

夏天比赛打得不顺。

打得,不顺,夏天,电脑软件,问题: 最近,我的电脑玩了魔兽世界游戏卡,每秒25个拷贝,而且每秒只有几帧。我尝试了很多方法,如补丁,做系统,删除插件等。后来,我用GPU-Z查看软件。对1.195v电压仅为19A,和游戏卡的电流更小。我不知道显卡损坏或电源是不够…

重要Solaris目录介绍

重要Solaris目录介绍

目录,电脑软件,Solaris,回顾:开发: 拔出设备文件 / dev / CUA UUCP和PPP / dev / DSK块磁盘设备 开发: 拔出设备文件 / dev / CUA UUCP和PPP / dev / DSK块磁盘设备 帧缓冲设备文件(帧缓冲设备文件) 文件描述了(文件描述符) 逻辑卷管理元…