当前位置:首页 » 编程语言 » sqlserver安全性

sqlserver安全性

发布时间: 2022-09-08 06:59:34

① 如何提高sql Server的安全性(下)

每个服务必须与一个 Windows 帐户相关联,并从这个帐户中衍生出安全性上下文。SQL Server允许sa 登录的用户(有时也包括其他用户)来访问操作系统特性。这些操作系统调用是由拥有服务器进程的帐户的安全性上下文来创建的。如果服务器被攻破了,那么这些操作系统调用可能被利用来向其他资源进行攻击,只要所拥有的过程(SQL Server服务帐户)可以对其进行访问。因此,为 SQL Server 服务仅授予必要的权限是十分重要的。
我们推荐您采用下列设置:SQL Server Engine/MSSQLServer如果拥有指定实例,那么它们应该被命名为MSSQL$InstanceName。作为具有一般用户权限的 Windows 域用户帐户运行。不要作为本地系统、本地管理员或域管理员帐户来运行。
SQL Server Agent Service/SQLServerAgent如果您的环境中不需要,请禁用该服务;否则请作为具有一般用户权限的Windows域用户帐户运行。不要作为本地系统、本地管理员或域管理员帐户来运行。
重点: 如果下列条件之一成立,那么 SQL Server Agent 将需要本地 Windows管理员权限:SQL Server Agent 使用标准的 SQL Server 身份验证连接到SQL Server(不推荐)。
SQL Server Agent 使用多服务器管理主服务器(MSX)帐户,而该帐户使用标准 SQL Server 身份验证进行连接。
SQL Server Agent 运行非sysadmin固定服务器角色成员所拥有的 Microsoft ActiveX?脚本或 CmdExec 作业。
如果您需要更改与 SQL Serve r服务相关联的帐户,请使用 SQL Server Enterprise Manager。Enterprise Manager 将为 SQL Server 所使用的文件和注册表键设置合适的权限。不要使用 Microsoft 管理控制台的"服务"(在控制面板中)来更改这些帐户,因为这样需要手动地调制大量的注册表键和NTFS文件系统权限以及Micorsoft Windows用户权限。
帐户信息的更改将在下一次服务启动时生效。如果您需要更改与 SQL Server 以及 SQL Server Agent 相关联的帐户,那么您必须使用 Enterprise Manager 分别对两个服务进行更改。

7.在防火墙上禁用 SQL Server 端口SQL Server 的默认安装将监视 TCP 端口 1433 以及UDP端口 1434。配置您的防火墙来过滤掉到达这些端口的数据包。而且,还应该在防火墙上阻止与指定实例相关联的其他端口。

8.使用最安全的文件系统NTFS 是最适合安装 SQL Server 的文件系统。它比 FAT 文件系统更稳定且更容易恢复。而且它还包括一些安全选项,例如文件和目录 ACL 以及文件加密(EFS)。在安装过程中,如果侦测到 NTFS,SQL Server 将在注册表键和文件上设置合适的 ACL。不应该去更改这些权限。
通过 EFS,数据库文件将在运行 SQL Server 的帐户身份下进行加密。只有这个帐户才能解密这些文件。如果您需要更改运行 SQL Server 的帐户,那么您必须首先在旧帐户下解密这些文件,然后在新帐户下重新进行加密。

9.删除或保护旧的安装文件SQL Server 安装文件可能包含由纯文本或简单加密的凭证和其他在安装过程中记录的敏感配置信息。这些日志文件的保存位置取决于所安装的SQL Server版本。在 SQL Server 2000 中,下列文件可能受到影响:默认安装时:\Program Files\Microsoft SQL Server\MSSQL\Install文件夹中,以及指定实例的:\Program Files\Microsoft SQL Server\ MSSQL$\Install文件夹中的sqlstp.log, sqlsp.log和setup.iss如果当前的系统是从 SQL Server 7.0 安装升级而来的,那么还应该检查下列文件:%Windir% 文件夹中的setup.iss以及Windows Temp文件夹中的sqlsp.log。
Microsoft发布了一个免费的实用工具 Killpwd,它将从您的系统中找到并删除这些密码。
10.审核指向 SQL Server 的连接SQL Server 可以记录事件信息,用于系统管理员的审查。至少您应该记录失败的 SQL Server 连接尝试,并定期地查看这个日志。在可能的情况下,不要将这些日志和数据文件保存在同一个硬盘上。
要在 SQL Server 的 Enterprise Manager 中审核失败连接,请按下列步骤操作:展开服务器组。
右键点击服务器,然后点击属性。
在安全性选项卡的审核等级中,点击失败。

② 如何提高SQL Server的安全性控制

SQLServer2000的安全配置在进行SQLServer2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似,‘;@/等字符,防止破坏者构造恶意的SQL语句。接着,安装SQLServer2000后请打上补丁sp1,sp2以及最新的sp3,sp4。在做完上面三步基础之后,我们再来讨论SQLServer的安全配置。1、使用安全的密码策略我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!SQLServer2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:UsemasterSelectname,、使用安全的帐号策略由于SQLServer不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到SQLServer实例(例如,当其它系统管理员不可用或忘记了密码)时才使用sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。SQLServer的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTIN\Administrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有法来恢复了。很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。3、加强数据库日志的记录审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。请定期查看SQLServer日志检查是否有可疑的登录事件发生,或者使用DOS命令。findstr/C:"登录"d:\MicrosoftSQLServer\MSSQL\LOG\*.*4、管理扩展存储过程对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQLServer的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:usemastersp_dropextendedproc'xp_cmdshell'xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。sp_addextendedproc'xp_cmdshell','xpsql70.dll'如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetPropertySp_OAMethodSp_OASetPropertySp_OAStop去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvaluesXp_regreadXp_regremovemultistringXp_regwrite还有一些其他的扩展存储过程,你也最好检查检查。在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。5、使用协议加密SQLServer2000使用的TabularDataStream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。6、不要让人随便探测到你的TCP/IP端口默认情况下,SQLServer使用1433端口监听,很多人都说SQLServer配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQLServer使用的什么TCP/IP端口了。不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择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服务器被黑

一、基本安全设定:
(1)文件系统的设定 windows2000server 支持多种文件系统,最安全的要数NTFS文件系统,如果你的windows2000server要用作服务器,最好将所有的分区都格式化为NTFS文件系统,fat32是不能用的。
(2)补丁(pack) 目前windows2000已经到sp4了,这个大补丁一定要装的,安装sp4后再到网络上升级,将微软提供的各种重要系统安全更新全部都升级,不要怕麻烦,这是防病毒和黑客攻击的非常重要安全设置步骤。
(3)帐号安全帐号是windows2000server的重要的安全保证,要注意区分一些工作组的权限: administrators是系统管理员组,administrator是系统默认的管理帐号,administrator最好设置一个复杂的密码,复杂到什么程度呢?简单的说,自己都要记不住这个密码,这个密码可以是字符、数字、符号、大小写的组合(如:AGgF!452KhtUN),密码不要让别人猜得到,不要用自己得电话号码啦之类的东西,最好在笔记本上将密码设定好后再设置,设好密码后妥善保管记录密码的笔记本,每隔一段时间更改自己的密码 guest帐号最好禁止使用,如果没有必要,不要添加其他的系统管理员帐号。
(4)关闭不必要的服务在服务中将一些不常用的服务关闭(比如打印、远程注册表操作,信息发送等不必要的服务)。
(5)网络协议如果没有其他的用途,windows2000server只需要安装tcp/ip协议,其他不必要的协议统统删除。(6)如果没必要,IIS一定不要安装(如果需要安装iis,那么看后面的设置) IIS是windows2000server中最不安全的组件,不装IIS,windows2000将是很安全的。
(7)默认共享的删除 windows2000server默认的共享有以下几种 c$ d$ e$ ..... IPC$ ADMIN$ 这些默认共享一定要关,否者hk利用简单的Net use命令就可以将你的服务器黑掉下面提供简单的关闭这些共享的方法 A、建立一个批处理文件,如a.bat B、在该批处理文件中添加下面的语句 net share c$ /del (这是取消c盘的默认共享,同理 net share d$ /del 是取消d盘的共享,你有多少个盘符,就编多少个以上的语句) net share ipc$/del (删除ipc默认共享) net share admin$ /del (删除 admin默认共享) C 、将以上的语句添加完后,将该文件放入开始菜单中程序中启动文件夹中,让windows2000server每次启动都将默认的共享删除(7)CMD的设置 cmd.exe是windows2000中非常重要的文件,很多漏洞都是要*调用该个文件,该文件在windows2000server所在目录的system32中,我们需要对其进行设定 A、将该文件从system32中拷贝出来放在其他地方,将原来的文件删除 B、将拷贝出来的文件进行权限设定,只允许administrator访问,不允许其他任何的工作组或用户访问该文件。
(8)windows2000server终端服务(默认3389端口) windows2000server提供了远程终端服务,此服务方便了网络管理员对服务器的远程管理,但是,该服务也为黑客提供了非常危险的攻击,网络黑客口中的所谓跳板(肉鸡)绝大部分都是利用该功能进行自我隐蔽的攻击。一旦系统管理员的密码被破解,而该服务器又提供终端服务,黑客就可以完全控制了该服务器,不但服务器的各种资料会完全暴露,而且黑客还会利用这台服务器去攻击其他的服务器,因此该服务除非你觉得自己的服务器足够安全,否则最好不要打开,特别是暴露在互连网络中的服务器,打开该功能一定要小心谨慎。 A、如何知道自己的终端服务是否打开?终端服务需要安装,我们可以通过控制面板中的添加/删除程序中的添加/删除windows组件来安装,在windows组件向导列表中最下面有两个组件,一个是“终端服务”,一个是“终端服务授权”,我们只需要安装“终端服务”这个组件就可以将该功能启用,一旦启用了该功能,默认的情况下,我们的tcp3389端口就会打开。所以,我们看看这个地方,如果你的组件“终端服务”前面打了勾,就表明你已经打开了该服务。有些黑客手段很高明,一旦控制了你的计算机后,可以远程打开该服务,这种情况下,我们最好检查windows2000server启用了哪些服务,如何检查呢?打开windows2000server的服务管理(开始菜单——程序——管理工具——服务)。在服务列表中检查Terminal Services这项服务的状态,看看如果该服务处于“ 禁用”状态,说明该服务没打开,如果该服务处于“已启动”状态,说明该服务已经打开。 B、如何关闭该服务!第一步,通过控制面板中的添加/删除程序中的添加/删除windows组件来将该服务组件删除第二步,在服务中将Terminal Services服务禁用注意:需要经常检查该服务是否被非法启动,如果你在你没有启动该服务的情况下你发现它已打开,非常不幸,你的服务器已经被黑,成为了别人的跳板(肉鸡)最好的解决方法是重作服务器系统,不要以为关闭该服务就行了。
(9)telnet服务(默认23端口)相对于3389来讲,telnet服务更不容易引起管理员的注意,该服务以前是UNIX和Linux类系统提供的远程管理终端服务,windows2000server也提供了,它也是一个终端服务,只不过telnet服务是字符界面,而3389服务是图形界面,二者都能完全远程控制服务器的所有功能。我以前在利用肉鸡的时候,一般都不用3389,为什么呢?该服务速度慢,我一般都是打开肉鸡的telnet服务,速度非常快,功能也很全面,又不容易被发觉 A、如何知道自己的telnet服务是否打开?在windows2000server控制面板——管理工具中有一项“Telnet 服务器管理”(对应的文件是system32中的tlntadmn.exe),这就是该服务的开关,我们可以利用该程序配置我们的telnet服务。打开开始菜单——程序——管理工具——服务,在服务列表中有该服务对应的一项“Telnet”,默认的情况下,该服务状态是“手动”,如果,该服务是“已启动”状态,说明该服务已经启动了,你可以用以下命令连接在windows(98/2000/xp/2003)字符模式下输入: telnet 服务器的IP地址如果出现了登陆界面,非常不幸,你的telnet服务真的已开,如果不是你开的,非常不幸,你被黑了,你可能成为了肉鸡。 B、如何关闭该服务!打开开始菜单——程序——管理工具——服务,在服务中将telnet服务禁用建议:最好将system32中的tlntadmn.exe拷贝出来放到其他文件夹中并改名,并将该文件从system32中删除。随时检查telnet服务的状态,如果该服务是“已启动”状态,而又不是你启动的,最好重新安装服务器系统。最好随时扫描你的服务器所开的端口,如果23端口已开或有一些不知名的端口已开(因为黑客很可能会将提供该服务的端口改为其他的端口来逃避检查),用telnet命令测试一下,看看能不能连接。附:telnet命令格式 telnet ip地址端口如:telnet 192.168.1.1 (连接服务器192.168.1.1的默认23端口)如:telnet 192.168.1.1555 (连接服务器192.168.1.1的555端口) SQL Server 2000的安全配置在进行SQL Server 2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的WEB应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似 , ‘ @ / 等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上补丁sp1以及最新的sp2。 1、使用安全的密码策略我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句:Use master Select name,Password from syslogins wherepassword is null
2、使用安全帐号策略:由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到 SQL Server 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统帐号“BUILTIN\Administrators”删除。不过这样做的结果是一旦sa帐号忘记密码的话,就没有办法来恢复了。很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配帐号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public帐号能够select就可以了。
3、加强数据库日志记录:审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。findstr /C:"登录" d:\Microsoft SQL Server\MSSQL\LOG\*.*
4、管理扩展存储过程:对存储过程进行大手术,并且对帐号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:use master sp_dropextendedproc xp_cmdshellxp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。sp_addextendedproc xp_cmdshell, xpsql70.dll 如果你不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:Sp_OACreateSp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty Sp_OAMethod Sp_OASetProperty Sp_OAStop 去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:Xp_regaddmultistring Xp_regdeletekeyXp_regdeletevalue Xp_regenumvaluesXp_regread Xp_regremovemultistring Xp_regwrite 还有一些其他的扩展存储过程,你也最好检查检查。在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。
5、使用协议加密:SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库帐号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,你需要一个证书来支持。
6、不要让人随便探测到你的TCP/IP端口:默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口了。不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)。
7、修改TCP/IP使用的端口:请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口. 9、拒绝来自1434端口的探测由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DOS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通讯,可以尽可能地隐藏你的SQL Server。10、对网络连接进行IP限制SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。关于IPSec的使用请参看:http://www.microsoft.com/china/technet/security/ipsecloc.asp 上面主要介绍的一些SQL Server的安全配置,经过以上的配置,可以让SQL Server本身具备足够的安全防范能力。当然,更主要的还是要加强内部的安全控制和管理员的安全培训,而且安全性问题是一个长期的解决过程,还需要以后进行更多的安全维护一、概述在应用系统中,数据库往往是最核心的部分,一旦数据库毁坏或损坏,将会带来巨大的损失,所以数据库的管理越来越重要。我们在做数据库管理与维护工作中,不可避免会出现各种各样的错误,本文针对数据库的日志文件丢失时如何利用MDF文件恢复数据库的方法进行了研究。二、数据库的恢复当数据库的主数据MDF文件完好无损时,在丢失了LDF文件的情况下,如何利用MDF文件恢复数据库?我们把SQL Server的日志文件分为两类:一类是无活动事务的日志,另一类是含活动事务的日志,根据不同的日志,采取不同的方法来恢复数据库。
1. 无活动事务的日志恢复:无活动事务的日志丢失时,我们很容易利用MDF文件直接恢复数据库,具体方法如下:
①.分离被质疑的数据库,可用企业管理器中的"分离数据库工具",或者用存储过程sp_detach_db分离数据库;②利用MDF文件附加数据库生成新的日志文件,可用企业管理器中的"附加数据库"的工具,或者用存储过程sp_attach_single_file_db附加数据库。如果数据库的日志文件中含有活动事务,利用此方法就不能恢复数据库。
2. 含活动事务的日志恢复:含有活动事务的日志丢失时,利用上述方法就会出现"数据库和日志文件不符合,不能附加数据库"。对于这种情况下,我们采用如下方法:
①新建同名数据库AAA,并设它为紧急模式•停止SQL Server服务器;•把数据库主数据MDF文件移走;•启SQL Server服务器,新建一个同名的数据库AAA;•停止SQL Server服务器,把移走的MDF文件再覆盖回来;•启动SQL Server服务器,把AAA设为紧急模式,不过默认情况下,系统表是不能随便修改的,必须首先设置一下使其能被修改,运行以下语句即可: Use Master Gosp_configure ’allow updates’,1 reconfigure with override Go 接着运行以下语句,把AAA数据库设为紧急模式,即把Sysdatabases表中AAA数据库的status属性设为’37268’,就表示把AAA数据库处于紧急模式。 updatesysdatabases set status=32768 where hame=’AAA’如果没有报告什么错误,就可以进行以下操作。
②设置数据库AAA为单用户模式,并检查数据库•重启SQL Server服务器;•把数据库AAA设为单用户模式Sp_dboption ’AAA’, ’single user’, ’true’ •运行以下语句,检查数据库AAA DBCCCHECKDB(’AAA’) 如果没有什么大的问题就可以把数据库的状态改回去。
③还原数据库的状态运行以下语句,就可以把数据库的状态还原: update sysdatabases set status=28 wherename=’AAA’ sp_configure ’allow updates’,0 reconfigure with override Go 如果没有什么大的问题,刷新一下数据库,数据库AAA又会出现在你面前,但目前恢复工作还没有做完,此时的数据库仍不能工作,还要进行下面的处理,才能真正恢复。④利用DTS的导入导出向导,把数据库AAA导入到一个新建数据库BBB中•新建一个数据库BBB; •右击BBB,选择IMPORT功能,打开导入向导;•目标源选择"在SQL Server数据库之间复制对象和数据库",这样可以把表结构,数据

④ 如何保证SQLServer数据库安全

目前,针对SQL Server数据库的应用级入侵已经变得越来越肆无忌惮,像SQL注入、跨站点脚本攻击和未经授权的用户访问等。所有这些入侵都有可能绕过前台安全系统并对数据库系统攻击。对于数据库管理来说,保护数据不受内部和外部侵害是一项重要的工作。SQL Server 正日益广泛的使用于各部门内外,作为数据库系统管理员,需要深入的理解SQL Server的安全性控制策略,以实现管理安全性的目标。那么,如何确保SQL Server数据库的安全性呢,我们可以从以下两方面考虑。it培训机构
首先、采取业界已存在的且比较成熟的数据库审计解决方案来实现
实时记录用户对数据库系统的所有操作(如:插入、删除、更新、用户自定义操作等),并还原SQL操作命令包括源IP地址、目的IP地址、访问时间、用户名、数据库操作类型、数据库表名、字段名等,如此,可实现对数据库安全事件准确全程跟踪定位。
实时检查数据库不安全配置、数据库潜在弱点、数据库用户弱口令、数据库软件补丁层次、数据库潜藏木马等。
进行全方位的多层(应用层、中间层、数据库层)的访问审计,通过多层业务审计,实现数据操作原始访问者的精确定位。
针对于数据库的操作行为进行实时检测,并预设置风险控制策略,结合对数据库活动的实时监控信息,进行特征检测,任何尝试性的攻击操作都将被检测到并进行阻断或告警;并支持通过邮件、短信、SYSLOG、SNMP、屏幕等方式告警。
其次、制定相关的数据库管理流程
不同的人员对数据库的操作职责不一样,所有人员对数据库的操作均需要事前审批,对一些非常重要的操作需要二级以上审批。申请操作时,需明确在什么人,什么时间,因为何事,对哪个数据库(或表),进行什么样的操作,可能有什么样的风险及采取的补救措施等。
数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪,数据库安全性问题对于数据库管理员来说简直就是噩梦。对于数据库数据的安全问题。本文对围绕数据库的安全性问题提出了一些安全性策略,希望对数据库管理员有所帮助。

⑤ 如何确保SQLServer的安全性

sqlserver 自身有安全性相关的功能,根据这个功能进行设置就可以了。

⑥ sqlserver有哪些安全策略

Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。按照本文介绍的步骤,你可以为SQL Server 7.0(或2000)构造出一个灵活的、可管理的安全策略,而且它的安全性经得起考验。

一、验证方法选择
本文对验证(authentication)和授权(authorization)这两个概念作不同的解释。验证是指检验用户的身份标识;授权是指 允许用户做些什么。在本文的讨论中,验证过程在用户登录SQL Server的时候出现,授权过程在用户试图访问数据或执行命令的时候出现。
构造安全策略的第一个步骤是确定SQL Server用哪种方式验证用户。SQL Server的验证是把一组帐户、密码与Master数据库Sysxlogins表中的一个清单进行匹配。Windows NT/2000的验证是请求域控制器检查用户身份的合法性。一般地,如果服务器可以访问域控制器,我们应该使用Windows NT/2000验证。域控制器可以是Win2K服务器,也可以是NT服务器。无论在哪种情况下,SQL Server都接收到一个访问标记(Access Token)。访问标记是在验证过程中构造出来的一个特殊列表,其中包含了用户的SID(安全标识号)以及一系列用户所在组的SID。正如本文后面所介绍 的,SQL Server以这些SID为基础授予访问权限。注意,操作系统如何构造访问标记并不重要,SQL Server只使用访问标记中的SID。也就是说,不论你使用SQL Server 2000、SQL Server 7.0、Win2K还是NT进行验证都无关紧要,结果都一样。
如果使用SQL Server验证的登录,它最大的好处是很容易通过Enterprise Manager实现,最大的缺点在于SQL Server验证的登录只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难。使用SQL Server进行验证的第二个重要的缺点是,对于每一个数据库,我们必须分别地为它管理权限。如果某个用户对两个数据库有相同的权限要求,我们必须手工设 置两个数据库的权限,或者编写脚本设置权限。如果用户数量较少,比如25个以下,而且这些用户的权限变化不是很频繁,SQL Server验证的登录或许适用。但是,在几乎所有的其他情况下(有一些例外情况,例如直接管理安全问题的应用),这种登录方式的管理负担将超过它的优 点。
二、Web环境中的验证
即使最好的安全策略也常常在一种情形前屈服,这种情形就是在Web应用中使用SQL Server的数据。在这种情形下,进行验证的典型方法是把一组SQL Server登录名称和密码嵌入到Web服务器上运行的程序,比如ASP页面或者CGI脚本;然后,由Web服务器负责验证用户,应用程序则使用它自己的 登录帐户(或者是系统管理员sa帐户,或者为了方便起见,使用Sysadmin服务器角色中的登录帐户)为用户访问数据。
这种安排有几个缺点,其中最重要的包括:它不具备对用户在服务器上的活动进行审核的能力,完全依赖于Web应用程序实现用户验证,当SQL Server需要限定用户权限时不同的用户之间不易区别。如果你使用的是IIS 5.0或者IIS 4.0,你可以用四种方法验证用户。第一种方法是为每一个网站和每一个虚拟目录创建一个匿名用户的NT帐户。此后,所有应用程序登录SQL Server时都使用该安全环境。我们可以通过授予NT匿名帐户合适的权限,改进审核和验证功能。
第二种方法是让所有网站使用Basic验证。此时,只有当用户在对话框中输入了合法的帐户和密码,IIS才会允许他们访问页面。IIS依靠一个NT 安全数据库实现登录身份验证,NT安全数据库既可以在本地服务器上,也可以在域控制器上。当用户运行一个访问SQL Server数据库的程序或者脚本时,IIS把用户为了浏览页面而提供的身份信息发送给服务器。如果你使用这种方法,应该记住:在通常情况下,浏览器与服 务器之间的密码传送一般是不加密的,对于那些使用Basic验证而安全又很重要的网站,你必须实现SSL(Secure Sockets Layer,安全套接字层)。
在客户端只使用IE 5.0、IE 4.0、IE 3.0浏览器的情况下,你可以使用第三种验证方法。你可以在Web网站上和虚拟目录上都启用NT验证。IE会把用户登录计算机的身份信息发送给IIS,当 该用户试图登录SQL Server时IIS就使用这些登录信息。使用这种简化的方法时,我们可以在一个远程网站的域上对用户身份进行验证(该远程网站登录到一个与运行着Web 服务器的域有着信任关系的域)。
最后,如果用户都有个人数字证书,你可以把那些证书映射到本地域的NT帐户上。个人数字证书与服务器数字证书以同样的技术为基础,它证明用户身份标 识的合法性,所以可以取代NT的Challenge/Response(质询/回应)验证算法。Netscape和IE都自动在每一个页面请求中把证书信 息发送给IIS。IIS提供了一个让管理员把证书映射到NT帐户的工具。因此,我们可以用数字证书取代通常的提供帐户名字和密码的登录过程。
由此可见,通过NT帐户验证用户时我们可以使用多种实现方法。即使当用户通过IIS跨越Internet连接SQL Server时,选择仍旧存在。因此,你应该把NT验证作为首选的用户身份验证办法。
三、设置全局组
构造安全策略的下一个步骤是确定用户应该属于什么组。通常,每一个组织或应用程序的用户都可以按照他们对数据的特定访问要求分成许多类别。例如,会 计应用软件的用户一般包括:数据输入操作员,数据输入管理员,报表编写员,会计师,审计员,财务经理等。每一组用户都有不同的数据库访问要求。

热点内容
创建邮箱地址服务器连接错误 发布:2025-01-13 09:49:24 浏览:723
linux编辑文档 发布:2025-01-13 09:47:51 浏览:435
二手制冷压缩机 发布:2025-01-13 09:43:59 浏览:585
网鱼电脑密码多少 发布:2025-01-13 09:33:46 浏览:464
如何取消子账号密码 发布:2025-01-13 09:22:41 浏览:347
抖音搜索有缓存 发布:2025-01-13 09:17:28 浏览:590
c语言字符数组连接 发布:2025-01-13 08:55:11 浏览:901
国二c语言编程题目 发布:2025-01-13 08:45:41 浏览:285
ipad软件如何加密 发布:2025-01-13 08:28:59 浏览:278
android的文件操作 发布:2025-01-13 08:24:48 浏览:173