mysql密码安全级别_Mysql数据库的安全性问题释疑

数据库系统的安全性包括很多方面。由于很多情况下,数据库服务器容许客户机从网络上连接,因此客户机连接的安全对MySQL数据库安全有很重要的影响。

不在客户机的命令行上提供密码

使用mysql、mysqladmin等客户机用一个用户身份与MySQL服务器连接时,需要为连接提供密码。

1、可以在命令行上提供密码

shell>mysql –u root –pmypass

注意,-p选项与密码之间不可有空格,否则会提示你输入密码,并报错。

你也可以使用长格式

shell>mysql –user=root –password=mypass

现在你可以考察这样做的后果:

在Unix上,$ps –aux | grep mysql

在win9x上,你可以按住Ctrl+Alt+Del键,NT上你可以打开任务管理器。

你发现了什么,你发现密码清清楚楚的显示在你的面前。所以,你无论何时也不要这么做。

所以你需要让客户机提示你的密码:

shell>mysql –u root –p

你也可以使用选项文件提供密码,但是注意为了安全,不能在选项文件中存储密码。你可以只提供password选项,让客户机提示你输入密码。

使用SSH加密客户机连接

这是一个关于怎样用SSH 得到一个安全的连接远程MySQL服务器的注意事项(David Carlson)。

在你的windows机器上安装SSH客户 -

我使用了一个来自http://www.doc.ic.ac.uk/~ci2/ssh/的免费SSH客户。其他有用的链接:

http://www.npaci.edu/Security/npaci_security_software.html

http://www.npaci.edu/Security/samples/ssh32_windows/index.html.

启动SSH。设置主机名字 = 你的MySql服务器名或IP地址,设置userid=你的用户名登录到你的服务器。

点击“local forwords”。设定 local port: 3306, host: localhost, remote port:

3306

保存一切,否则下次你将必须再做一遍。

用SSH登录到你的服务器。

启动一些ODBC应用程序(例如Access)。

创造一个新文件并且用ODBC驱动程序链接到mySQL,就像你通常做的一样,除了对服务器用用户“localhost”。

搞定。它对一个直接的因特网连接工作得很好。

不要使用Unix的root用户运行MySQL守护进程

不要作为Unix的root用户运行MySQL守护进程。mysqld能以任何用户运行,你也可以创造一个新的Unix用户mysql使一切更安全。如果你作为其它Unix用户运行mysqld,你不需要改变在user表中的root用户名,因为MySQL用户名与Unix

用户名没关系。

你可以作为其它Unix用户编辑mysql.server启动脚本mysqld。或者使用选项文件。有关如何用非root用户启动MySQL服务器的细节,请见第二章。

数据库目录的安全

MySQL服务器提供了一个通过mysql数据库中的授权表,实现了一个十分灵活的权限系统,保证了从网络访问数据的安全性。但是,如果服务器主机上的其它用户拥有对服务器目录的直接访问权,那么你的服务器的数据仍旧是不安全的。

一般你可能用一个非特权的Unix用户执行守护程序。检查那个运行mysqld的Unix用户是唯一的在数据库目录下有读/写权限的用户。

可能的安全漏洞

显然,你不会让服务器主机上的其它用户拥有对数据库目录文件的写访问权,但是,仅仅是读访问权也非常危险。

由于象GRANT和SET

PASSWORD这样的查询都被记录到日志中去了,常规和更新日志文件包含了有关密码的敏感查询文本。如果一个攻具有对这些日志的读访问权,那么他只要在日志文件中查找GRANT或PASSWORD这样的敏感单词,就很容易找到密码的明文。

对于表文件的读访问也是很危险的,窃取文件并使MySQL以及以纯文本的形式显示表的内容是微不足道的事。可以按下列步骤进行:

1、安装一个新的MySQL分发,可以是在另一台主机上,也可以就在当前的服务器主机上安装,使用与正式服务器不同的端口、套接字和数据文件。

2、将窃取的表的相应文件拷贝到新服务数据库目录中的test目录下

3、然后就可以启动作案服务器,可以随意访问所窃取表的内容。

在Unix设置合适的数据库目录权限

如果要消除这些安全漏洞,就要安排数据库目录及其中所有文件和目录的所有权,是的只有启动服务器的专用帐户才可以访问它们。操作步骤如下:

1、切换到root用户

$su

2、设置数据库目录及其中所有文件目录的所有权为运行该服务器的帐号所有,在本书中一直将这个帐号假定为mysql,把所有的组设为root组

%chown –R mysql:root DATADIR

3、修改数据库目录及其中所有文件目录的权限为只有所有者可以读写

%chmod –R go-rwx DATADIR

在NT系统中设置合适的数据库目录权限

在NT系统中的数据库目录的安全性可能比较简单:

读者可能想到,把所有目录文件改为只有某个帐户administrator例如可读写。但是,这样会有一个问题,就是这能在

administrator帐户中用手动启动独立的服务器,如果让mysql系统服务自动启动的方法也不可行,解决方法是让数据库目录也可被

administrators组用户读写,这样MySQL服务器就可以用系统服务的方法自动启动了,也可以在任何帐户中用net start mysql启动。

另外一个问题是,如果你在非administrators组用户中或者从网络都无法建立数据库连接,因为没有数据库目录的读的权利,如果要正常使用,还需要

写的权利。解决方法是让SYSTEM组用户能够队数据库目录读写。

由于许可证和费用的原因,通常建议你在Linux服务器上使用MySQL,在Windows平台之用来测试或者数据录入工作。但是,如果你要在Windows上使用的话,可以注意本小节的一些内容。

影响安全的mysqld选项

下列mysqld选项影响安全:

--secure

由gethostbyname()系统调用返回的IP数字被检查,确保他们解析回到原来的主机名。这对某些外人通过模仿其它主机获得存取权限变得更难。这个选项也增加一些聪明的主机名检查。在MySQL3.21里,选择缺省是关掉的,因为它有时它花很长时间执行反向解析。MySQL

3.22缓存主机名并缺省地启用了这个选项。

--skip-grant-tables

这个选项导致服务器根本不使用权限系统。这给每个人以完全存取所有的数据库的权力!(通过执行mysqladmin

reload,你能告诉一个正在运行的服务器再次开始使用授权表。)

--skip-name-resolve

主机名不被解析。所有在授权表的Host的列值必须是IP数字或localhost。

--skip-networking

在网络上不允许TCP/IP连接。所有到mysqld的连接必须经由Unix套接字进行。这个选项对使用MIT-pthreads的系统是不合适的,因为MIT-pthreads包不支持Unix套接字。

.pb{}

.pb textarea{font-size:14px; margin:10px; font-family:"宋体"; background:#FFFFEE; color:#000066}

.pb_t{line-height:30px; font-size:14px; color:#000; text-align:center;}

/* 分页 */

.pagebox{overflow:hidden; zoom:1; font-size:12px; font-family:"宋体",sans-serif;}

.pagebox span{float:left; margin-right:2px; overflow:hidden; text-align:center; background:#fff;}

.pagebox span a{display:block; overflow:hidden; zoom:1; _float:left;}

.pagebox span.pagebox_pre_nolink{border:1px #ddd solid; width:53px; height:21px; line-height:21px; text-align:center; color:#999; cursor:default;}

.pagebox span.pagebox_pre{color:#3568b9; height:23px;}

.pagebox span.pagebox_pre a,.pagebox span.pagebox_pre a:visited,.pagebox span.pagebox_next a,.pagebox span.pagebox_next a:visited{border:1px #9aafe5 solid; color:#3568b9; text-decoration:none; text-align:center; width:53px; cursor:pointer; height:21px; line-height:21px;}

.pagebox span.pagebox_pre a:hover,.pagebox span.pagebox_pre a:active,.pagebox span.pagebox_next a:hover,.pagebox span.pagebox_next a:active{color:#363636; border:1px #2e6ab1 solid;}

.pagebox span.pagebox_num_nonce{padding:0 8px; height:23px; line-height:23px; color:#fff; cursor:default; background:#296cb3; font-weight:bold;}

.pagebox span.pagebox_num{color:#3568b9; height:23px;}

.pagebox span.pagebox_num a,.pagebox span.pagebox_num a:visited{border:1px #9aafe5 solid; color:#3568b9; text-decoration:none; padding:0 8px; cursor:pointer; height:21px; line-height:21px;}

.pagebox span.pagebox_num a:hover,.pagebox span.pagebox_num a:active{border:1px #2e6ab1 solid;color:#363636;}

.pagebox span.pagebox_num_ellipsis{color:#393733; width:22px; background:none; line-height:23px;}

.pagebox span.pagebox_next_nolink{border:1px #ddd solid; width:53px; height:21px; line-height:21px; text-align:center; color:#999; cursor:default;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL中binary 和 varbinary的区别

binary 和 varbinary固定长度 (binary) 的或可变长度 (varbinary) 的 binary 数据类型。binary [ ( n ) ]固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n4 字节。 varbinary [ ( n ) ]n 个字节变长二进制数据。n 必须从 1 到 8,000。存储空间大小为实际…

【转】一、用于VS2019的QT配置

转自:https://www.cnblogs.com/fantianliang/p/12355973.html 一、前言 本期间的主要目的是最后能够使用VS开发关于QT为界面的程序,同时能够使用VTK和ITK程序,这是第一部分。 因为之前查看的有关博客随着时间没有跟随版本变化,所…

进程控制3--signal

signal信号是一种比较古老的进程控制手段,可以在进程内和进程间传递事件,通常被用来通知进程产生了异常事件 信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进…

python settings模块导入不了_python settings 中通过字符串导入模块

1. 项目文件结构set_test├─ main.py # 入口函数│├─notify # 自定义的模块│ ├─ email.py # 自定义模块│ ├─ msg.py # 自定义模块│ ├─ wechat.py # 自定义模块│ └─ __init__.py # 模块导入初始化函数│└─set_test # 总配置文件└─ settings.py# 这个项目的架…

IIS 7.0探索用于 Windows Vista 的 Web 服务器和更多内容

我经常听到 Microsoft 内部和外部的人将新的 IIS 7.0 Web 服务器称为 Microsoft 在过去几年中所进行的最重要的开发工作之一。考虑到 Microsoft 最近推出了一系列引人注意的技术,包括 Windows Vista™,这个评语具有重要意义! IIS 7.0 的发布时…

【转】三、QT例子-打开一个图片并且显示

一、前言 本博客的主要目的在于对QT有进一步的了解,单纯只使用QT。 今天小例子主要是打开图片,然后显示出来,并且显示图片的路径。 二、工程建立 1、参考前面 博客一QT安装过程里面的例子, 建立一个QT GUI Application 2、打开.u…

学习linux/unix编程方法的建议[转]

首先先学学编辑器,vim, emacs什么的都行。然后学make file文件,只要知道一点就行,这样就可以准备编程序了。 然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书…

PPC(Pocket PC)中显示二进制数组(byte[])类型的图片

//给数组赋值,这里用的是通过WebService返回的二进制数组 byte[] img MyService.GetImg(textBox1.Text); MemoryStream ms new MemoryStream(img); Bitmap bt new Bitmap(ms); pictureBox1.Image Image.FromHbitmap(bt.GetHbitmap()); 转载于:https://www.cnblo…

【转】四、关于如何使用软件库的一个技巧-避免重复配置属性表

一、前言 我们需要使用各种函数库,比如Opencv,Itk, vtk,当不同的函数库使用的时候,在VS配置属性是一个很麻烦的问题,并且设计到不同函数库的交叉使用,所以这里提供一个小技巧。 那就是我们把每一个函数库的配置为属性表的形式&…

Linux编程练习 --多线程1--线程创建

POSIX线程—轻量级进程,线程调度是由内核调度程序完成的,线程所消耗的系统资源比较少,相互通讯也比较容易。 多线程的优点: 1.资源消耗量少。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的…

java configuration_关于JAVA 中的Configuration类

properties文件是Java平台默认的配置文件格式,其优点是格式清晰,简单易懂,使用commons-configuration读取properties文件也比较简单,代码如下:基本用法:1.加载jar包,我使用maven自动加载&#x…

Ajax Extensions核心控件介绍

摘自:http://www.cnblogs.com/remember515/archive/2007/06/28/799030.html Ajax的核心组件包括ScriptManager、ScriptManagerProxy、UpdatePanel、Timer、UpdateProgress,其相关属性如下:updatePanel控件UpdatePanel主要属性 UpdateMode 内容模板的更…

【转】五、VTK读取图片,然后QT显示

一、前言 今天实现的主要功能是通过vtk读取jpg图片(只能够读取.jpg文件),然后通过QT显示出来,整个程序的框架是QT GUIApplication 版本: VS2019VTK8.2.0QT5.13.1版本配置 VS 为release x64(这个是工程建立的时候设置的解决方案属性&#xff…

Linux编程练习 --多线程2--属性的设置

在上一篇的练习里,我们用pthread_create函数创建了一个线程,在这个线程中,我们使用了默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来…

使用Installshield制作asp,asp.net应用的安装程序

在使用asp,asp.net编写Web应用时,最大的烦恼莫过于程序的分发的部署,由于面向的最终用户,所以程序的安装的过程必须要简单,方便和快捷。 下面提供了Installshield的脚本,改脚本功能包括: 1&…

用java查询excel表格_如何把java查询出的内容导入到excel表格

展开全部java查询出的内容导入到excel表格/**导出数据为XLS格式* param fos* param bo*/public void writeExcelBo(FileOutputStream fos, java.util.Vector ve){jxl.write.WritableWorkbook wwb;try{wwb Workbook.createWorkbook(fos);jxl.write.WritableSheet ws wwb.createS…

【转】C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁

转自:https://www.cnblogs.com/marvin/p/PutDllToSpecificFolder.html?utm_sourcetuicool&utm_mediumreferral 系列文章 C#开发奇技淫巧一:调试windows系统服务C#开发奇技淫巧二:根据dll文件加载C或者Delphi插件C#开发奇技淫巧三&#…

【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件

这两天忙着把框架改为支持加载C和Delphi的插件,来不及更新blog了。 原来的写的框架只支持c#插件,这个好做,直接用c#的反射功能便可。但是公司不是所有人都搞C#,也不是所有的程序C#都能很好的完成,又或者其他公司…

Linux编程练习 --多线程3--mutex

互斥指互相排斥的锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源 1.数据类型: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t,我们定义一个互斥数据可以这样: pthread_mutex_t mutex; 2.…

java ppt转html_word,ppt,excel转pdf,pdf转html工具类搭建

我看到很多需求要求word,excel,ppt,pptx转pdf等工具类。还有就是pdf转图片转html这里介绍一个这个工具类。引入pom.xmlcom.asposeaspose-pdf11.0.0com.asposewords15.9.0com.asposeaspose-slides15.9.0工具类代码:package com.lvic.prsp.common.util;imp…