仓酷云

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

[学习教程] MSSQL教程之SQL Server 2000平安设置完整攻略

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:24:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
每个Rows_log_event中包含event_type,可选值为WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_ROWS_EVENT。从宏名字就能看出用途。server|平安|攻略数据库是电子商务、金融和ERP体系的基本,一般都保留侧重要的贸易同伴和客户信息。年夜多半企业、构造和当局部门的电子数据都保留在各类数据库中,他们用这些数据库保留一些团体材料,好比员工薪水、团体材料等等。数据库服务器还把握着敏感的金融数据。包含买卖纪录、贸易事件和帐号数据,计谋上的大概专业的信息,好比专利和工程数据,乃至市场企图等等应当回护起来避免合作者和其他不法者猎取的材料。数据完全性和正当存取会遭到良多方面的平安威逼,包含暗码战略、体系后门、数据库操纵和自己的平安计划。可是数据库一般没有象操纵体系和收集如许在平安性上遭到器重。

微软的SQLServer是一种普遍利用的数据库,良多电子商务网站、企业外部信息化平台等都是基于SQLServer上的,可是数据库的平安性还没有被人们更体系的平安性同等起来,多半办理员以为只需把收集和操纵体系的平安弄好了,那末一切的使用程序也就平安了。年夜多半体系办理员对数据库不熟习而数据库办理员有对平安成绩体贴太少,并且一些平安公司也疏忽数据库平安,这就使数据库的平安成绩加倍严格了。数据库体系中存在的平安毛病和不妥的设置一般会形成严峻的成果,并且都难以发明。数据库使用程序一般同操纵体系的最高办理员亲切相干。普遍SQLServer数据库又是属于“端口”型的数据库,这就暗示任何人都可以用剖析工具试图毗连到数据库上,从而绕过操纵体系的平安机制,进而突入体系、损坏和夺取数据材料,乃至损坏全部体系。

这里,我们次要议论有关SQLServer2000数据库的平安设置和一些相干的平安和利用上的成绩。

在举行SQLServer2000数据库的平安设置之前,起首你必需对操纵体系举行平安设置,包管你的操纵体系处于平安形态。然后对你要利用的操纵数据库软件(程序)举行需要的平安考核,好比对ASP、PHP等剧本,这是良多基于数据库的WEB使用常呈现的平安隐患,关于剧本次要是一个过滤成绩,必要过滤一些相似,‘;@/等字符,避免损坏者机关歹意的SQL语句。

在做完下面三步基本以后,我们再来会商SQLServer的平安设置。

1、利用平安的暗码战略:
我们把暗码战略摆在一切平安设置的第一步,请注重,良多数据库帐号的暗码过于复杂,这跟体系暗码过于复杂是一个事理。关于sa更应当注重,同时不要让sa帐号的暗码写于使用程序大概剧本中。强健的暗码是平安的第一步!
SQLServer2000安装的时分,假如是利用夹杂形式,那末就必要输出sa的暗码,除非你确认必需利用空暗码。这比之前的版本有所改善。
同时养成按期修正暗码的好习气。数据库办理员应当按期检察是不是有不切合暗码请求的帐号。好比利用上面的SQL语句:
  1. UsemasterSelectname,Passwordfromsysloginswherepasswordisnull
复制代码
2、利用平安的帐号战略:
因为SQLServer不克不及变动sa用户称号,也不克不及删除这个超等用户,以是,我们必需对这个帐号举行最强的回护,固然,包含利用一个十分健壮的暗码,最好不要在数据库使用中利用sa帐号,只要当没有别的办法登录到SQLServer实例(比方,当别的体系办理员不成用或健忘了暗码)时才利用sa。倡议数据库办理员新创建一个具有与sa一样权限的超等用户来办理数据库。平安的帐号战略还包含不要让办理员权限的帐号众多。
SQLServer的认证形式有Windows身份认证和夹杂身份认证两种。假如数据库办理员不但愿操纵体系办理员来经由过程操纵体系上岸来打仗数据库的话,能够在帐号办理中把体系帐号“BUILTINAdministrators”删除。不外如许做的了局是一旦sa帐号健忘暗码的话,就没有举措来恢复了。
良多主机利用数据库使用只是用来做查询、修正等复杂功效的,请依据实践必要分派帐号,并付与仅仅可以满意使用请求和必要的权限。好比,只需查询功效的,那末就利用一个复杂的public帐号可以select就能够了。

3、增强数据库日记的纪录:
考核数据库登录事务的“失利和乐成”,在实例属性当选择“平安性”,将个中的考核级别选定为全体,如许在数据库体系和操纵体系日记内里,就具体纪录了一切帐号的登录事务。如图:


请按期检察SQLServer日记反省是不是有可疑的登录事务产生,大概利用DOS命令。findstr/C:"登录"d:MicrosoftSQLServerMSSQLLOG*.*。

4、办理扩大存储历程:
对存储历程举行年夜手术,而且对帐号挪用扩大存储历程的权限要稳重。实在在多半使用中基本用不到几体系的存储历程,而SQLServer的这么多体系存储历程只是用来顺应宽大用户需求的,以是请删除不用要的存储历程,由于有些体系的存储历程能很简单地被人使用起来提拔权限或举行损坏。
假如你不必要扩大存储历程xp_cmdshell请把它往失落。利用这个SQL语句:
  1. usemastersp_dropextendedprocxp_cmdshell
复制代码
xp_cmdshell是进进操纵体系的最好捷径,是数据库留给操纵体系的一个年夜后门。假如你必要这个存储历程,请用这个语句也能够恢复过去。sp_addextendedprocxp_cmdshell,xpsql70.dll。

假如你不必要请抛弃OLE主动存储历程(会形成办理器中的某些特性不克不及利用),这些历程包含以下:

  1. Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetPropertySp_OAMethodSp_OASetPropertySp_OAStop
复制代码
往失落不必要的注册表会见的存储历程,注册表存储历程乃至可以读出操纵体系办理员的暗码来,以下::
  1. Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvaluesXp_regreadXp_regremovemultistringXp_regwrite
复制代码
另有一些其他的扩大存储历程,你也最好反省反省。在处置存储历程的时分,请确认一下,制止形成对数据库或使用程序的危险。

5、利用协定加密:
SQLServer2000利用的TabularDataStream协定来举行收集数据互换,假如不加密的话,一切的收集传输都是明文的,包含暗码、数据库内容等等,这是一个很年夜的平安威逼。能被人在收集中截获到他们必要的器材,包含数据库帐号和暗码。以是,在前提允许情形下,最好利用SSL来加密协定,固然,你必要一个证书来撑持。

6、不要让人任意探测到你的TCP/IP端口:
默许情形下,SQLServer利用1433端口监听,良多人都说SQLServer设置的时分要把这个端口改动,如许他人就不克不及很简单地晓得利用的甚么端口了。惋惜,经由过程微软未公然的1434端口的UDP探测能够很简单晓得SQLServer利用的甚么TCP/IP端口了(请参考《深切探究SQLServer收集毗连的平安成绩》)。
不外微软仍是思索到了这个成绩,究竟公然并且开放的端口会引发不用要的贫苦。在实例属性当选择TCP/IP协定的属性。选择埋没SQLServer实例。假如埋没了SQLServer实例,则将克制对试图列举收集上现有的SQLServer实例的客户端所收回的播送作出呼应。如许,他人就不克不及用1434来探测你的TCP/IP端口了(除非用PortScan)。

7、修正TCP/IP利用的端口:
请在上一步设置的基本上,变动原默许的1433端口。在实例属性当选择收集设置中的TCP/IP协定的属性,将TCP/IP利用的默许端口变成其他端口。


9、回绝来自1434端口的探测:
因为1434端口探测没无限制,可以被他人探测到一些数据库信息,并且还大概遭到DOS打击让数据库服务器的CPU负荷增年夜,以是对Windows2000操纵体系来讲,在IPSec过滤回绝失落1434端口的UDP通信,能够尽量地埋没你的SQLServer。

10、对收集毗连举行IP限定:
SQLServer2000数据库体系自己没有供应收集毗连的平安办理举措,可是Windows2000供应了如许的平安机制。利用操纵体系本人的IPSec能够完成IP数据包的平安性。请对IP毗连举行限定,只包管本人的IP可以会见,也回绝其他IP举行的端口毗连,把来自收集上的平安威逼举行无效的把持。
下面次要先容的一些SQLServer的平安设置,经由以上的设置,可让SQLServer自己具有充足的平安提防才能。固然,更次要的仍是要增强外部的平安把持和办理员的平安培训,并且平安性成绩是一个临时的办理历程,还必要今后举行更多的平安保护。

这里我们讨论用binlog来实现闪回的方案。
沙发
 楼主| 发表于 2015-1-19 10:59:28 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
老尸 该用户已被删除
板凳
发表于 2015-1-25 13:42:40 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
乐观 该用户已被删除
地板
发表于 2015-2-2 22:18:32 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
不帅 该用户已被删除
5#
发表于 2015-2-8 13:16:50 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
若天明 该用户已被删除
6#
发表于 2015-2-25 15:16:00 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
柔情似水 该用户已被删除
7#
发表于 2015-3-7 23:03:56 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-15 16:27:24 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
莫相离 该用户已被删除
9#
发表于 2015-3-22 02:52:11 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 04:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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