热点推荐:
您现在的位置: 电脑学习网 >> 软件专区 >> 正文

SQL数据库空间不足怎么办

2013-09-12 15:53:21  来源: 软件专区 

  当存放SQL Server数据库的硬盘空间不足或性能、质量不佳时,数据库情绪自然不会好。为了调动数据库积极性,最好的办法莫过于给数据库找个宽敞、安全的新家。这等搬家的大事,绝不可轻视之。www.sq120.com推荐文章

  我们知道,在新建一个数据库的时候,我们会分别指定其数据文件(.mdf文件)以及事务日志文件(.ldf文件)存放的位置。所以数据库搬家,也就是把这两个文件安置到一个新地方去。
  在SQL Server中,数据库有两大家族:用户数据库与系统数据库。对于它们要分别采用不同的方法来实现。
一、用户数据库搬家
  操作方法有以下两种
  方法1:在企业管理器中进行
  (1)在企业管理器中选定要搬家的数据库名,在其上单击鼠标右键,出现如图1所示对话框。
  (2)选中“所有任务”,在其子菜单中单击“分离数据库”。
  (3)将该数据库的数据文件和日志文件从旧的位置(如D:\MSSQL\Data)拷贝到新的位置(如E:\SQLDataNew)。
  (4)再在企业管理器中选中“数据库”文件夹,在其上单击鼠标右键,在出现的对话框中选中“所有任务”,在其子菜单中单击“附加数据库”。
  (5)在出现的“附加数据库”对话框中,选择数据库的两个文件的新位置。Www.iTcOmPUteR.cOM.Cn
  方法2:用SQL系统存储过程sp_detach_db/sp_attach_db实现
  (1)使用下面语句分离数据库:
  USE master
  GO
  EXEC sp_detach_db 'mydb'
  GO
  (2)将该数据库的数据文件和日志文件从旧的位置拷贝到新的位置。
  (3)使用下面语句重新附加数据库:
  USE master
  GO
  EXEC sp_attach_db
  'mydb', 'E:\SQLDataNew\mydbdata.mdf', 'E:\SQLDataNew\mydblog.ldf''
  GO
二、系统数据库搬家
1.master数据库搬家
  (1)由于SQL Server每次启动的时候都需要读取master数据库,因此必须在企业管理器中改变SQL Server启动参数中master数据文件和日志文件的路径。
  在 SQL Server属性的“常规”选项卡下面有一个叫做“启动参数”的按钮,单击后可以看到所示的界面。
  其中,-d用来指定master数据库文件的路径,而–l用来指定master数据库日志文件的路径。
  删除旧的master数据库文件和日志文件的路径,添加新的master数据文件和日志文件所在的路径,如:
  -dE:\ SQLDataNew \master.mdf
  -lE:\ SQLDataNew \mastlog.ldf
  (2)停止SQL Server服务,将master.mdf文件和mastlog.ldf文件拷贝到新的位置,如E:\ SQLDataNew文件夹中。
  (3)重新启动服务即可。
  小技巧:如果在“启动参数”添加的master数据库文件和日志文件的路径或文件名有误,就会造成SQL Server启动不起来。而此时想改正错误又因SQL Server启动不了而重设不了“启动参数”。其实这两个文件路径和文件名是放置在注册表HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Miccrosoft SQL Server\你安装SQL服务器的名\MSSQLServer\Parrmeters下的参数SQLArg1和SQLArg2中,修改这两个参数的值即可。
2. msdb数据库和model数据库搬家
  (1)对于msdb数据库和model数据库,我们不能在企业管理器中实现分离和附加,只能用sp_detach_db和sp_attach_db存储过程来分离和附加这两个数据库。
  其中,对于msdb数据库,还应确保SQL Server代理当前没有运行,否则sp_detach_db存储过程将运行失败,并返回如下消息:
  “无法除去数据库 'msdb' ,因为它当前正在使用。”
  (2)调出如图4所示的“启动参数”对话框,添加新参数-T3608。这样,启动SQL Server,它就不会恢复除master之外的任何数据库。
  (3)重新启动SQL Server,再用下面命令分离msdb或者model数据库:
  EXEC sp_detach_db 'msdb'
  GO
  (4)将数据文件和日志文件移到新的位置,然后再用下面命令重新附加msdb数据库或者model数据库:
  USE master
  GO
  EXEC sp_attach_db
  'msdb', ‘E:\SQLDataNew\msdbdata.mdf', ' E:\SQLDataNew\msdblog.ldf '
  GO
  (5)在企业管理器中,从“启动参数”框中删除-T3608跟踪标记,再停止并重新启动SQL Server。
3. tempdb数据库搬家
  对于tempdb数据库,则可以直接使用ALTER DATABASE语句来为数据文件和日志文件指定新的存放位置,如下所示:
  USE master
  GO
  ALTER DATABASE tempdb MODIF
  Y FILE (NAME=tempdev, FILENAME ='E:\SQLDataNew \tempdb.mdf')
  GO
  ALTER DATABASE tempdb MODIF
  Y FILE(NAME=templog, FILENAME=
  ' E:\SQLDataNew \templog.ldf')
  GO
  至此,SQL Server 中数据库全部搬家完成。

 

初级SQL注入的破解方案

  最近海口警方破获一起特大高校招生诈骗案,该诈骗团伙雇用黑客入侵海南大学招生网站,窜改招生数据库,伪造招生名单,骗取学生财物。看到这里,你是不是感到不寒而栗?你知道黑客入侵该大学网站首先会采用什么方式吗?答案就是SQL注入,所谓SQL注入,就是把SQL命令插入到Web表单递交的查询字符串、页面请求的查询字符串,以及输入域名的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。
  暑假中自己架设网站的学生们、众多的个人网站以及小型企业的网站的管理员们(主要采用Access或MSSQL作数据库,特别是Access数据库),你们作好迎战的准备了吗?下面就请跟随小编一起探索初级SQL注入的解决之法。
SQL注入漏洞的原理
  SQL注入的原理,就是从客户端提交特殊的代码,来收集远程网站及服务器的信息,从而获取自己所需要的相关资料。根据具体情况,构造出相应的巧妙的SQL语句,是成功获取需要数据的关键。
  在实际的操作中,如果是针对Access数据库,可以对表名进行逐个猜测,接着用函数来计算数据并将它们还原;如果是MSSQL数据库的话,由于所有的列表都保存在一个特殊的地方,可以直接通过暴库的方法来获取,这种方法简单易用并且准确率极高。
初级手段寻找注入漏洞
  首先,需要对IE浏览器进行一些设置。点击“工具”菜单中的“Internet选项”命令,在弹出的窗口中点击“高级”标签,把“显示友好 HTTP 错误信息”前面的钩去掉。这样设置的目的,就是从返回的错误信息中寻找可以利用的信息,否则无论服务器返回什么错误信息,IE浏览器都只能显示为HTTP 500服务器错误,不能获得更多的提示信息,
  接着要判断网站是否存在注入漏洞,因为只有ASP、PHP、JSP等动态网页才可能存在注入漏洞。我们判读的方法是,打开一个带参数的动态网页地址,例如http://www.xxxx.net/ReadNews.asp?NewsID=58。只有这种问号后面附带一个参数的网址,才可以进行是否能注入的判断。
  然后,在网页地址后加上“and 1=1”,如果返回错误页面则说明不存在注入漏洞。如果返回和原先一样的正常页面,那就将1=1改为1=2再执行操作,如果返回的网页还是正常显示,就说明不存在注入漏洞。如果显示错误的话,那么就很有可能存在注入漏洞。
  小提示:存在注入漏洞的网站大部分都有特点,即如果在页面的链接后面跟一个等式就会返回一个和没有加等式前一样的页面;而在链接后面加一个不等式,就会返回各种错误信息。这是判断网站注入漏洞的一种最经典的方法。完成了注入漏洞的判断后,还需要经过猜表、猜账号数目、猜解字段名称等多个步骤,才能最终获得需要的数据。
剖析SQL工具注入
  对于没有接触过数据库的普通用户来说,通过手工构造网页注入所用的代码很困难,因此可以直接利用现成的网页注入工具进行操作。现在网络中常见的网页注入工具包括NBSI、HDSI、Domain、《啊D注入工具》等,这些工具大大简化了网页注入操作的难度。
1.找寻网站注入点
  现在我们就利用《啊D注入工具》来进行演示。首先点击窗口中“注入检测”中的“扫描注入点”按钮,然后在“检测地址”中输入需要进行检测的网站地址,按回车就会打开该网页并开始检测注入点。用户可以在页面显示窗口中操作,这样可以提高程序查找漏洞的可能性。如果程序检测到漏洞的话,将显示出漏洞的链接地址,也就是用于SQL注入入侵的注入点。

2.分析数据库类型
  在检测到的注入点链接上点击鼠标右键,选择菜单中的“注入检测”按钮,程序将自动跳转到“初级SQL注入检测”界面。在“注入连接”选项中已经自动填入刚刚检测到得注入链接,用户直接点击“检测”按钮即可检测出该网站所使用的数据库类型,这也就是前面说的“猜表”的过程。接着点击“检测表段”按钮,对数据库的表段进行分析,没过多久程序就检测出数据库中的表段。

3.拆解数据库信息
  为了能获得需要的数据,一般都需要获得管理员的账户和密码。所以这里选择“admin”这个表段,然后接着点击“检测字段”按钮,同样在很短的时间内就能检测出“admin”表段中的字段名称。不用说我们就知道username字段存放的是管理员的账户,而password字段中存放的当然就是登录密码了。选择需要进行拆借的字段,再点击“检测内容”按钮来判断字段的长度和内容,接着程序就可以将每个字段的内容猜解出来。

4.寻找后台并登录
  当我们成功获得了管理员的账户和密码后,我们就应该开始检测该网站的管理入口了。点击“检测管理入口”按钮,工具就开始自动检测该网站的管理入口。当检测到网站的管理入口后,在检测到的地址上点击鼠标右键,在弹出的菜单中选择“用IE打开连接”命令。我们接着转到浏览器窗口,使用得到的管理员账户和密码在登录窗口进行登录,进入网站的后台后就可以进行管理操作了。

如何防范初级SQL注入
  对于SQL网页注入的防范主要分为两种。第一种就是对客户端提交的变量参数进行仔细检测。比如可以利用现成的《枫叶SQL通用防注入V1.0 ASP版》程序,对用户通过网址提交过来的变量参数进行检查,如果发现客户端提交的参数中有用于初级SQL注入的常用字符时,系统就会立即停止执行ASP并给出警告信息或转向出错页面。
  第二种就是给相关的账户信息加密。常见的系统都是利用MD5进行加密处理的,因为MD5没有反向算法不能解密。不过利用在线破解网站可以破解某些被MD5加密的内容,因此管理员在设置自己密码时最好先到这些网站进行检测,从而保证自己密码的安全性。
攻防博弈
  攻 黑客:这个实例向大家演示了利用《啊D注入工具》注入Access数据库的过程。对于Access来说,由于其SQL查询功能非常弱,因此只能使用猜解的办法;但是对于SQL Server之类的数据库来说,我们还可以利用一些特别的SQL查询语句暴出其表名与列名,并完成强大的系统控制功能。相对而言,SQL Server的手工注入更加灵活强大,而且更加难以防御!
  防 编辑:对客户端提交的变量参数进行仔细检测以及给相关的账户信息加密,的确可以减少黑客利用网站漏洞进行SQL注入。但是对于服务器管理员来说,服务器上有许多网站,不可能检查每个网站是否存在SQL注入漏洞,所以为了有效地防止SQL Server之类的暴库入侵,减少网站的损失,可以在IIS上进行安全设置。例如:把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息。

 
From:http://www.itcomputer.com.cn/Article/Software/201309/332.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 电脑知识网 Computer Knowledge   All rights reserved.