保护SQL Server 2000数据库安全配置的十七招

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: SQL Server 数据库在企业中的应用越来越多,安全性显得越来越突出。特别是最近一段时间以来,一种新的网络攻击技术开始在Internet上快速流行,那就是“SQL Injection”,俗称“脚本注入式攻击”,只要被不法分子盯上的系统,恰好您使用的数据库是SQL Server 2000的话,那么被成功入侵的概率高达90%。
     SQL Server 数据库在企业中的应用越来越多,安全性显得越来越突出。特别是最近一段时间以来,一种新的网络攻击技术开始在Internet上快速流行,那就是“SQL Injection”,俗称“脚本注入式攻击”,只要被不法分子盯上的系统,恰好您使用的数据库是SQL Server 2000的话,那么被成功入侵的概率高达90%。

    如何加强数据库的安全呢?本文将向您全面介绍保护SQL Server 2000数据库安全配置的十七招。

    第一招 首先确认是否已经安装了操作系统和SQL Server的最新安全补丁。很多黑客攻击不是通过SQL Server本身的漏洞来完成资料窃取的,而是通过操作系统漏洞来完成,然后进入到数据库中。

    第二招 根据业务系统需求,选择一个考虑到最大安全性但是同时又不影响功能的网络协议。如TCP/IP协议、命名管道等。

    第三招 众所周知,SQL Server的“SA”账户在默认状态下是空密码的。给其设定一个足够复杂并且足够长度密码来加强其安全性,同时把该密码保存在一个安全的地方。

    配置方法:开始→所有程序→Microsoft SQL Server→企业管理器,展开控制台根目录,选择“安全性”,展开,点击“登录”,在右侧的用户列表中可以看到有SA这个用户。双击打开SA用户,可以更改SA用户的密码。

    第四招 建立一个低权限用户做为SQL服务器服务的查询操作专用账户,不要用LocalSystem或SA。 这个账户应该有最小的权利,比如仅能执行Select语句,对其他的DDL操纵语句都没有权限。

    配置方法:展开控制台根目录,选择“数据库”,展开,点击“用户”,在右侧用户列表中可以看到已经授权的用户,在默认状态下只有“SA”和“Guest”两个用户。双击打开已经建立的低权限账户,打开数据库用户属性。选择数据库脚色,尽可能低的权限。打开“权限”按钮,赋予用户相应的权限,最好全部是Select查询权限。

    第五招 确认SQL服务器系统安装在NTFS分区,且权限控制列表 被应用。如果黑客得到对数据库系统的存取操作权限,该层权限可以阻止入侵者进一步破坏数据。Windows 2000或者2003 Server都是需要安装在NTFS分区。

    配置方法:找到SQL Server安装文件夹,默认安装在“X:Program FilesMicrosoft SQL Server”目录下。鼠标右键,选择“属性”。注意查看“共享”属性选项卡,一定不要共享。点击安全选项,只有许可的用户才能访问这个文件夹。

    第六招 严格禁止使用Xp_cmdshell命令。限制所有的账户拥有操作、使用XP_cmdshell的权限。如果黑客或者其他有恶意的人,拥有操作这个命令的权限,那它就可以轻松得到系统管理员的权限。

    第七招 在业务应用系统中,如果不需要就停用对象连接与嵌入自动化储存程序。当这些储存程序被停用的时候,企业管理器部分功能可能丢失。比如:DTS数据导入导出。同时,禁用部分注册表存取程序。

    注意:Xp_regread和 xp_regwrite这两个存储过程如果删除,会影响一些主要功能包括日志和SP的安装。建议保留。

    第八招 关闭远程服务器连接。如果允许使用远程服务器连接,入侵者在自己的机器上安装SQL Server就可以使用数据库服务器连接到你服务器的数据库上,这是一个危险级别很高的安全风险。

    配置方法:展开控制台根目录,选择“(Local)Windows NT”,鼠标右键,选择“属性”,在配置窗口中选择“连接”选项卡,去掉“允许其他SQL Server使用RPC远程连接到本SQL Server”选项。这样就可以防止他人使用数据库的恶意连接。

    第九招 注意SQL服务器的物理安全。数据机房禁止不相关的人员进入,把Server锁在机柜里,并且注意钥匙的安全,只要有机会到服务器面前,就会找到攻击服务器的方法。

    第十招 在系统中,有很多人没有设置密码的习惯。审计使用空密码的用户,强制使用安全密码。

    使用下列语句,可以得到现有用户中没有使用密码的账号:

    Select name,Password from syslogins where password is null

    执行结果可以看到目前在业务系统中有四个人的密码是空,其中包括SA超级用户的密码。

    第十一招 不允许使用者交互式登录到SQL Server之上。这个规则适用任何服务器。一旦一个使用者能够交互式进入一个服务器之内,就有可能利用管理员的存取特权得到管理员权限。

    解决方法:关闭远程终端服务和Windows 2003的Web管理功能。

    第十二招 启用混合模式安全性认证,在默认状态只是执行失败的审核,建议使用“SQL Server和Windows”身份验证,审核级别使用“全部”。“无”表示不执行审核;“成功”表示只审核成功的登录尝试;“失败”表示只审核失败的登录尝试;“全部”表示审核成功的和失败的登录尝试。

    配置方法:展开控制台根目录,选择“(Local)Windows NT”,鼠标右键,选择“属性”,在配置窗口中选择“安全性”选项卡,审核级别选择“全部”,记录所有的身份验证状况。

    第十三招 定期检测SQL日志文件,检索其中成功登录或者登录失败的信息,从而找到任何非法入侵者所作多次数据库登录尝试。

    配置方法:展开控制台根目录,选择“管理”,展开,选择“SQL Server日志”,在右侧窗口列表中打开您选择的日志文件,上面有详细的记录状况。

    第十四招 制定严格的数据库备份策略,在数据库管理中,这是最重要的工作。同时在允许的条件下模拟可能出现的灾难情况,模拟出测试环境,进行数据保护有效性防范,减少故障发生的机率,系统灾难恢复时间最小化。

    第十五招 如果条件许可,数据库文件和日志文件分开存储,分别放在不同的物理存储设备上。一旦发生灾难性故障,如硬件损坏,数据文件和日志存放在一起,没有任何手段可以恢复数据。如果做了数据备份,同时日志文件保存在其它位置,并且日志文件没有损坏的情况下,就有可能恢复数据。数据安全级别定义:高。

    配置方法:双击数据库文件名,打开数据库属性,点击“数据文件”选项卡,设置数据文件存放的位置。点击“事务日志”选项卡,设置日至文件存放的位置。

    第十六招 选择数据库故障还原模型,建议选择“完全”方式。

    SQL Server2000支持3种方式的数据库故障还原模型:简单、完全、大容量日志记录。其优缺点如表1所示。

    配置方法:选中数据库名称,鼠标右键选择属性,点击“选项”选项卡,在故障还原子段下有一个‘模型’栏目,选择需要设置的模型方式即可。

    第十七招 关闭服务器行为下的允许对“系统目录直接进行修改”功能。如果开启此功能,则在数据库架构内可以使用扩展存储过程对系统目录下的文件或者其他信息进行修改,或者在数据库架构内上传具有恶意功能的代码。这是大家都不愿意看到的。安全风险级别:高。

    配置方法:鼠标右键数据库服务器,选择“服务器设置”,在“服务器行为”字段下,关闭“系统目录直接进行修改”。

    以上为您介绍了SQL Server 2000数据库安全配置的十七种方法,这些方法只要使用得当,做好安全管理工作就不是一个难题。

    简单方式还原模型 产生日志文件的容量小,方便检索。 如果一旦发生数据损坏的情况,   常常不能恢复数据。

    大容量日志记录故障还原模型 所有的对数据库的操作将全部保留,会日志文件太大。产生一个巨大的日志文件。如果数据文 件发生损坏,可以完全恢复数据库的数据。

    完全方式的还原模型对数据库的数据操作将全部保留,会产对数据库的一些操作记录的不 生一个适中的日志文件,也可以恢复数据库数据够详细。
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
13天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
13天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
81 6
|
1天前
|
SQL 关系型数据库 MySQL
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
7 0
|
2天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
2天前
|
SQL XML 数据库
sql导入数据库命令
在SQL Server中,数据库导入可通过多种方式实现:1) 使用SSMS的“导入数据”向导从各种源(如Excel、CSV)导入;2) BULK INSERT语句适用于导入文本文件;3) bcp命令行工具进行批量数据交换;4) OPENROWSET函数直接从外部数据源(如Excel)插入数据。在操作前,请记得备份数据库,并可能需对数据进行预处理以符合SQL Server要求。注意不同方法可能依版本和配置而异。
|
9天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
19 0
|
10天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
10天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
36 3
|
13天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
46 0