SQL SERVER的安全问题一直是困扰DBA的一个难题.docx
- 文档编号:28416350
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:19
- 大小:24.82KB
SQL SERVER的安全问题一直是困扰DBA的一个难题.docx
《SQL SERVER的安全问题一直是困扰DBA的一个难题.docx》由会员分享,可在线阅读,更多相关《SQL SERVER的安全问题一直是困扰DBA的一个难题.docx(19页珍藏版)》请在冰豆网上搜索。
SQLSERVER的安全问题一直是困扰DBA的一个难题
SQLSERVER的安全问题一直是困扰DBA的一个难题
SERVERTCP/IP的默认端口、、、等安全措施,但很多DBA还是忽略了SQLSERVER服务的启动账号,这也是一个非常值得重点关注的问题。
特别是SQLSERVER提供了许多操作系统和注册表扩展存储过程,比如:
xp_cmdshell,xp_regdeletekey,xp_regdeletevalue等等。
我们先来回顾一下SQLSERVER执行这些扩展存储过程的步骤。
SQLSERVER提供的扩展存储过程使你可以向T-SQL一样调用一些动态链接库的内部函数逻辑,而且这些扩展存储过程可以包括WIN32和COM的大多数功能。
当关系数据库引擎确定Transact-SQL语句引用扩展存储过程时:
关系数据库引擎将扩展存储过程请求传递到开放式数据服务层。
然后开放式数据服务将包含扩展存储过程函数的DLL装载到SQLServer2000地址空间(如果还没有装载)。
开放式数据服务将请求传递到扩展存储过程。
开放式数据服务将操作结果传递到数据库引擎。
[img]http:
//www、cnser、net/uploadfile//、jpg[/img]
从上图中我们可以清楚的看到SQLServer2000的数据库引擎通过扩展存储过程和WindowsResources进行交互。
而扩展存储过程可以完成处理操作系统任务的关键是要有一个自己的身份SID,这个SID就来自SQLSERVER服务启动账号。
所以如果这个SQLSERVER服务启动账号是administrators组的用户,我们就可以通过这些扩展存储过程做任意想做的事情:
删除系统信息,破坏注册表等等。
如果我们限制SQLSERVER服务启动账号的权限,这样即使“黑客”或怀有恶意的开发人员获得数据库的管理员权限,也不会对操作系统造成很大的影响。
只要有数据库的备份我们可以非常方便的恢复数据库,而不要重新安装系统。
所以为了更安全的保护我们的系统,我们希望SQLSERVER服务启动账号的权限越低越好。
作为系统的一个服务,启动SQLSERVER2000服务的用户账号也需要一些必要的权限,下面我们就通过一个具体的实例来解释这些权限(本实例只针对成员服务器,如果是DC和启动了活动目录ActiveDirectory还需要其它的配置):
1、通过本地用户管理,建立一个本地用户sqlserver,密码:
;
2、如果现在就我们打开SERVICES配置通过该用户启动,系统会报错误:
Source:
ServiceControlManager
EventID:
7000
Description:
The%service%servicefailedtostartduetothefollowingerror:
Theservicedidnotstartduetoalogonfailure、
NoDatawillbeavailable、
这是因为作为一个普通用户是无法启动服务的,我们需要给sqlserver用户分配必要的权限。
SQLServer服务启动账号必须有3个基本权限:
数据库本地目录的读写权限;
启动本地服务的权限;
读取注册表的权限;
3、赋予sqlserver用户SQL目录的读写权限;
因为我的SQLSERVER是安装在D盘,所以我在权限管理中,将D:
\PROGRMAMFILE\MicrosoftSQLServer\MSSQL读写权限赋予sqlserver用户。
[img]http:
//www、cnser、net/uploadfile//、jpg[/img]
4、分配sqlserver用户启动本地服务的权限;
这个比较复杂,我只举例作为成员服务器的情况。
启动“LocalSecuritySetting”MMC管理单元。
展开LocalPolicy,然后单击UserRightsAssignment。
在右侧窗格中,右键单击LogonasService,将用户添加到该策略,然后单击OK。
在右侧窗格中,右键单击Logonasabatchjob,将用户添加到该策略,然后单击OK
在右侧窗格中,右键单击Lockspagesinmemory,将用户添加到该策略,然后单击OK
在右侧窗格中,右键单击Actaspartoftheoperatingsystme,将用户添加到该策略,然后单击OK
在右侧窗格中,右键单击Bypasstraversechecking,将用户添加到该策略,然后单击OK
在右侧窗格中,右键单击Replaceaprocessleveltoken,将用户添加到该策略,然后单击OK
关闭“LocalSecuritySetting”MMC管理单元。
如图:
[img]http:
//www、cnser、net/uploadfile//、jpg[/img]
5、 重新启动系统,用sqlserver用户登陆系统;
6、 再重新启动系统,已administrator用户登陆,打开SERVICES管理工具,配置用该用户启动SQLServer服务;
[img]http:
//www、cnser、net/uploadfile//、jpg[/img]
这样我们就可以通过限制SQLSERVER用户的权限来控制SQLSERVER扩展存储过程的权限。
现在sqlserver用户只对D:
\PROGRMAMFILE\MicrosoftSQLServer\MSSQL目录有写的权限,这样就降低了通过xp_cmdshell来删除系统文件的风险。
通过收购来配置是比较繁琐的,幸运的是SQLSERVER已经提供了这样的工具来配置启动启动账号,你可以通过SQLSERVER的企业管理器配置,入下图:
[img]http:
//www、cnser、net/uploadfile//、jpg[/img]
这样SQLSERVER企业管理器会自动帮你配置好所有的必要条件。
包括目录的访问权限,启动服务的权限,访问注册表的权限等等。
所以我们正确的配置顺序是:
1、建立用户;
2、在SQLSERVER企业管理器中配置该用户启动;
3、在分配其它相应的权限(如果需要复制操作);
备注:
通过SQLServer企业管理器增加的服务启动账号,会在registry中增加很多信息,即使你更换用户也不会删除,所以在改变服务启动账号不要频繁更换,这样会增大registry的容量。
同时要注意,只有属于sysadmin角色的用户才可以配置SQLServer服务的启动账号。
总结:
构建一个安全高效的SQLSERVER是多方面的,深入了解SQLServer的运行机制是基础。
我们不但要考虑数据库用户的安全,也要考虑SQLSERVER服务的安全性。
本文引用地址http:
//www、cnser、net/Art/xx/0821/19
93、html标题:
作者:
cnchenjie时间:
xx-08-2209:
21够详细!
呵呵,简单点根据不同的需要建立不同的访问用户然后设置不同的权限如何配置SQLServer全文结束》》以允许远程连接收到错误消息。
在使用任何程序连接到SQLServer时都可能会发生此问题。
例如,在使用SQLCMD实用工具连接到SQLServer时收到以下错误消息:
Sqlcmd:
错误:
MicrosoftSQLNativeClient:
建立到服务器的连接时发生错误。
连接到SQLServer全文结束》》时,默认设置SQLServer不允许远程连接这个事实可能会导致失败。
如果没有将SQLServer全文结束》》配置为接受远程连接,则可能会发生此问题。
默认情况下,SQLServer全文结束》》ExpressEdition和SQLServer全文结束》》DeveloperEdition不允许远程连接。
若要配置SQLServer全文结束》》以允许远程连接,请完成以下所有步骤:
?
在您要从远程计算机连接到的SQLServer实例上启用远程连接。
?
打开SQLServerBrowser服务。
?
配置防火墙以允许与SQLServer和SQLServerBrowser服务相关的网络通讯。
本文介绍如何完成这些步骤中的每一步。
回到顶端更多信息若要在SQLServer全文结束》》实例上启用远程连接并打开SQLServerBrowser服务,请使用SQLServer全文结束》》外围应用配置器工具。
在安装SQLServer全文结束》》时会安装外围应用配置器工具。
回到顶端为SQLServer全文结束》》ExpressEdition或SQLServer全文结束》》DeveloperEdition启用远程连接必须为要从远程计算机连接到的每个SQLServer全文结束》》实例启用远程连接。
为此,请按照下列步骤操作:
1、单击“开始”,依次指向“程序”、“MicrosoftSQLServer全文结束》》”和“配置工具”,然后单击“SQLServer外围应用配置器”。
2、在“SQLServer全文结束》》外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3、在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。
注意:
请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。
4、在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待MSSQLSERVER服务停止,然后单击“启动”以重新启动MSSQLSERVER服务。
回到顶端启用SQLServerBrowser服务如果您是通过使用实例名称来运行SQLServer全文结束》》并且在连接字符串中没有使用特定的TCP/IP端口号,则必须启用SQLServerBrowser服务以允许远程连接。
例如,使用\SQLEXPRESS的默认实例名称安装的SQLServer全文结束》》Express。
不管您正在运行多少个SQLServer全文结束》》实例,只需要启用一次SQLServerBrowser服务。
若要启用SQLServerBrowser服务,请执行以下步骤。
重要说明:
这些步骤可能会增加您的安全风险。
这些步骤还可能导致您的计算机或网络更易于受到恶意用户或恶意软件(如病毒)的攻击。
我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。
我们建议在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。
如果您选择实施此过程,请采用任何适当的附加步骤以保护您的系统。
我们建议只有确实需要这一过程时才使用它。
1、单击“开始”,依次指向“程序”、“MicrosoftSQLServer全文结束》》”和“配置工具”,然后单击“SQLServer外围应用配置器”。
2、在“SQLServer全文结束》》外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
3、在“服务和连接的外围应用配置器”页上,单击“SQLServerBrowser”,在“启动类型”中单击“自动”选项,然后单击“应用”。
注意:
在单击“自动”选项后,每次启动MicrosoftWindows时将自动启动SQLServerBrowser服务。
4、单击“启动”,然后单击“确定”。
注意:
在计算机上运行SQLServerBrowser服务时,计算机显示其上运行的每个SQLServer实例的实例名称和连接信息。
如果不启用SQLServerBrowser服务并且通过分配的TCP端口直接连接到SQLServer实例,则可以降低此风险。
本文不讨论如何通过TCP端口直接到SQLServer实例。
有关SQLServerBrowser服务和连接到SQLServer实例的更多信息,请参见《SQLServer联机丛书》中的以下主题:
?
SQLServerBrowser服务?
连接到SQLServer数据库引擎?
客户端网络配置回到顶端在Windows防火墙中创建例外这些步骤适用于WindowsXPServicePack2(SP2)
和WindowsServer2003中包含的Windows防火墙版本。
如果您使用的是不同的防火墙系统,请参阅相应的防火墙文档以了解更多信息。
如果在运行SQLServer全文结束》》的计算机上运行防火墙,将会阻止访问SQLServer全文结束》》的外部连接,除非SQLServer全文结束》》和SQLServerBrowser服务可以通过防火墙进行通信。
必须为每个要接受远程连接的SQLServer全文结束》》实例创建一个例外,并为SQLServerBrowser服务创建一个例外。
在安装SQLServer全文结束》》的程序文件时,SQLServer全文结束》》会使用一个实例ID作为路径的一部分。
若要为每个SQLServer实例创建一个例外,必须确定正确的实例ID。
若要获取实例ID,请执行以下步骤:
1、单击“开始”,依次指向“程序”、“MicrosoftSQLServer全文结束》》”和“配置工具”,然后单击“SQLServer配置管理器”。
2、在“SQLServer配置管理器”中,单击右窗格中的“SQLServerBrowser服务”,右键单击主窗口中的实例名称,然后单击“属性”。
3、在“SQLServerBrowser属性”页上,单击“高级”选项卡,定位到属性列表中的实例ID,然后单击“确定”。
若要打开Windows防火墙,请单击“开始”,再单击“运行”,键入firewall、cpl,然后单击“确定”。
在Windows防火墙中为SQLServer全文结束》》创建例外若要在Windows防火墙中为SQLServer全文结束》》创建例外,请执行以下步骤:
1、在Windows防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2、在“添加程序”窗口中,单击“浏览”。
3、单击C:
\ProgramFiles\MicrosoftSQLServer\MSSQL、1\MSSQL\Binn\sqlservr、exe可执行程序,单击“打开”,然后单击“确定”。
注意:
上述路径可能会根据SQLServer全文结束》》的安装位置而不同。
MSSQL、1这个占位符代表的是您在前面过程的步骤3中获得的实例ID。
4、对于每个需要为其创建例外的SQLServer全文结束》》实例,重复步骤1到步骤3。
在Windows防火墙中为SQLServerBrowser服务创建例外若要在Windows防火墙中为SQLServerBrowser服务创建例外,请执行以下步骤:
1、在Windows防火墙中,单击“例外”选项卡,然后单击“添加程序”。
2、在“添加程序”窗口中,单击“浏览”。
3、单击C:
\ProgramFiles\MicrosoftSQLServer\90\Shared\sqlbrowser、exe可执行程序,单击“打开”,然后单击“确定”。
注意:
上述路径可能会根据SQLServer全文结束》》的安装位置而不同。
SA问题SQLSERVER全文结束》》同步复制技术以下实现复制步骤(以快照复制为例)运行平台SQLSERVER一、准备工作:
1、建立一个WINDOWS用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。
2、在SQLSERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。
打开1433端口,在防火墙中设特例
3、在发布服务器上建立一个共享目录,作为发布快照文件的存放目录。
例如:
在D盘根目录下建文件夹名为SqlCopy
4、设置SQL代理(发布服务器和订阅服务器均设置)本篇文章发表于www、xkerZZZ(小新技术网)打开服务(控制面板---管理工具---服务)---右击SQLSERVERAGENT---属性---登录---选择“此帐户“---输入或选择第一步中创建的WINDOWS用户---“密码“中输入该用户密码
5、设置SQLSERVER身份验证,解决连接时的权限问题(发布、订阅服务器均设置)步骤为:
对象资源管理器----右击SQL实例-----属性----安全性----服务器身份验证------选“SQLServer和WINDOWS“,然后点确定
6、开启SQLServer全文结束》》的网络协议TCP/IP和管道命名协议并重启网络服务。
7、在SQLServer中创建步骤1中对应的系统用户登陆名,作为发布数据库的拥有者(设置为dbo_owner和public)。
8、以系统超级用户sa登陆SQLServer建立数据库和表。
9、发布服务器和订阅服务器互相注册步骤如下:
视图----单击以注册服务器----右键数据库引擎----新建服务器注册-----填写要注册的远程服务器名称------身份验证选“SQLServer验证“-----用户名(sa)
密码------创建组(也可不建)-----完成。
10、对于只能用IP,不能用计算机名的,为其注册服务器别名
二、开始:
发布服务器配置(在发布服务器上配置发布和订阅)
1、选择复制节点
2、右键本地发布--下一步---------系统弹出对话框看提示----直到“指定快照文件夹“----在“快照文件夹“中输入准备工作中创建的目录(指向步骤3所建的共享文件夹)------选择发布数据库-------选择发布类型-------选择订阅服务器类型-------选择要发布的对象------设置快照代理-------填写发布名称。
本篇文章发表于www、xkerZZZ(小新技术网)
3、右键本地订阅--------选择发布服务器-------选择订阅方式(如果是在服务器方订阅的话选择推送订阅反之选择请求订阅)-------填加订阅服务器--------选择代理计划(一般选择连续运行)---------其余选择默认项。
至此,SQLSERVER全文结束》》同步复制就完成了。
使用复制技术,用户可以将一份客户端的数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。
复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性,就无需编程实现客户端和服务器端数据同步了!
大大提高了工作效率!
SQLServer全文结束》》安装详解
一、安装SQLSever全文结束》》数据库如果你使用WindowsServer2003EnterpriseEdition,注意同时安装SP1或更高版本补丁。
安装条件:
组件要求磁盘空间所有版本的完全安装都需要350MB硬盘空间,而要安装示例数据库还需要390MB。
内存512MB建议使用1GB或更多的内存(这里指的是SQLServer全文结束》》EnterpriseEdition)Internet软件所有版本的SQLServer全文结束》》的安装都需要MicrosoftInternetExplorer
6、0,(同时安装SP1)或更高版本,因为Microsoft管理控制台(MicrosoftManagementConsole,MMC)和HTML帮助需要它。
只需InternetExplorer的最低安装即可满足要求,并且不需要将InternetExplorer配置为默认浏览器。
然而,如果只安装客户端组件且不需要连接到要求加密的服务器,则InternetExplorer
4、01(同时安装SP2)即可满足要求Internet信息服务(IIS)如果要编写XML应用程序,则必须配置IIS。
安装ReportingServices需要IIS
5、0或更高版本网络操作系统具有SQLServer安装所需的内置网络软件。
在安装SQLServer全文结束》》之前,必须启用TCP/IP部署过程:
1、通过“添加或删除程序/添加删除组件”安装IIS服务,勾选“ASP、NET、Internet信息服务(IIS)”点击
【确定】
来完成安装。
2、将“SQLServer全文结束》》”安装光盘插入光驱,单击
【服务器组件、工具、联机丛书和示例】
之后在“最终用户许可协议”中勾选“我接受许可条款和条件”单击
【下一步】
3、系统会自动检测安装时需要的组件,同时会显示出来,点击
【安装】
开始安装,安装完成后点击
【下一步】
即可。
4、在“欢迎向导”界面直接点击
【下一步】
即可,系统配置检查中会检查安装过程中的问题,一般来说除了“最低硬件要求”检测失败,可以进行安装,其它的建议按照提示检查原因后再进行安装。
确认无误后单击
【下一步】
5、在“注册信息”输入合适的用户名和公司后,点击
【下一步】
,在“要安装的组件”界面中选择要安装的组件;根据我们的需要来选择要安装的组件(各组件的说明如下表),这里我勾选所有的组件;我们可以点击
【高级】
中修改“安装路径”、“更改功能的安装方式”等。
表1--安装组件功能安装组件说明SQLServerDatabaseServices数据库引擎、复制、全文检索IntegrationServices数据转换AnalysisServices在线分析和数据挖掘NotificationServices应用程序发送通知ReportingServices制作和发布报告客户端组件、文档、工具工具和文档
6、点击
【高级】
进入“功能选择”界面,修改我们需要修改的参数后单击
【下一步】
,在“实例名向导”可以供我们选择是默认实例还是“命名实例”,命名实例只是表示你在安装过程中为实例定义了一个名称,然后就可以用该名称访问该实例。
默认实例获得安装它的服务器的名称,因此,在某个时刻只能有一个默认实例,但可以有很多命名实例。
7、点击
【下一步】
后,进入“服务账户”界面,在这个界面中我们需要考虑的有以下几点:
1)是否需要为每个服务账户自定义账户?
答:
一般来说这里所说的为每个服务定义不同账户的服务指“SQLServer”和“SQLServerAgent”服务,在这两个服务中我们要考虑是这两个服务的功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL SERVER的安全问题一直是困扰DBA的一个难题 SERVER 安全问题 一直 困扰 DBA 一个 难题
![提示](https://static.bdocx.com/images/bang_tan.gif)