• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
建立安全的MSSQL
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
建立安全的MSSQL SERVER启动账号
软件发布 建立安全的MSSQL SERVER启动账号
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 数据库类 >> SQL Server >> 建立安全的MSSQL SERVER启动账号

建立安全的MSSQL SERVER启动账号

添加时间: 2006-4-18 5:07:18  作者: SQL Server教程  阅读次数:24   来源: http://www.d9soft.com

       
 SQL SERVER的安全问题一直是困扰DBA的一个难题,作为开发者和用户希望自己的权限越大越好,最好是SA,而作为DBA希望所有的用户权限越小越好,这总是一对矛盾。一般来说,我们会考虑采用WINDOWS验证模式,建立安全的用户权限,改变SQL SERVER TCP/IP的默认端口...等安全措施,但很多DBA还是忽略了MSSQL SERVER服务的启动账号,这也是一个非常值得重点关注的问题。特别是MSSQL SERVER提供了许多操作系统和注册表扩展存储过程,比如:xp_cmdshell, xp_regdeletekey, xp_regdeletevalue 等等。 
 
     我们先来回顾一下MSSQL SERVER执行这些扩展存储过程的步骤。MS SQL SERVER提供的扩展存储过程使你可以向T-SQL一样调用一些动态链接库的内部函数逻辑,而且这些扩展存储过程可以包括WIN32和COM的大多数功能。
当关系数据库引擎确定 Transact-SQL 语句引用扩展存储过程时: 
关系数据库引擎将扩展存储过程请求传递到开放式数据服务层。 
然后开放式数据服务将包含扩展存储过程函数的 DLL 装载到 SQL Server 2000 地址空间(如果还没有装载)。 
开放式数据服务将请求传递到扩展存储过程。 
开放式数据服务将操作结果传递到数据库引擎。 
从上图中我们可以清楚的看到SQL Server 2000的数据库引擎通过扩展存储过程和Windows Resources进行交互。而扩展存储过程可以完成处理操作系统任务的关键是要有一个自己的身份SID,这个SID就来自MSSQL SERVER服务启动账号。所以如果这个MSSQL SERVER服务启动账号是administrators组的用户,我们就可以通过这些扩展存储过程做任意想做的事情:删除系统信息,破坏注册表等等。如果我们限制MSSQL SERVER服务启动账号的权限,这样即使“黑客”或怀有恶意的开发人员获得数据库的管理员权限,也不会对操作系统造成很大的影响。只要有数据库的备份我们可以非常方便的恢复数据库,而不要重新安装系统。所以为了更安全的保护我们的系统,我们希望MSSQL SERVER服务启动账号的权限越低越好。
作为系统的一个服务,启动MSSQL SERVER 2000服务的用户账号也需要一些必要的权限,下面我们就通过一个具体的实例来解释这些权限(本实例只针对成员服务器,如果是DC和启动了活动目录Active Directory还需要其它的配置):
1.  通过本地用户管理,建立一个本地用户sqlserver,密码:123456;
2.  如果现在就我们打开SERVICES配置通过该用户启动,系统会报错误:
Source:Service Control Manager
Event ID:7000
Description:
The %service% service failed to start due to the following error:
The service did not start due to a logon failure.
No Data will be available.
这是因为作为一个普通用户是无法启动服务的,我们需要给sqlserver用户分配必要的权限。
SQL Server服务启动账号必须有3个基本权限:
l         数据库本地目录的读写权限;
l         启动本地服务的权限;
l         读取注册表的权限;
 
3.  赋予sqlserver用户MSSQL目录的读写权限;
因为我的SQL SERVER是安装在D盘,所以我在权限管理中,将D:\PROGRMAM FILE\Microsoft SQL Server\MSSQL读写权限赋予sqlserver用户。
4.  分配sqlserver用户启动本地服务的权限;
这个比较复杂,我只举例作为成员服务器的情况。
l         启动“Local Security Setting” MMC 管理单元。 
l         展开Local Policy,然后单击User Rights Assignment。 
l         在右侧窗格中,右键单击Log on as Service,将用户添加到该策略,然后单击OK。 
l         在右侧窗格中,右键单击Log on as a batch job,将用户添加到该策略,然后单击OK
l         在右侧窗格中,右键单击Locks pages in memory,将用户添加到该策略,然后单击OK
l         在右侧窗格中,右键单击Act as part of the operating systme,将用户添加到该策略,然后单击OK
l         在右侧窗格中,右键单击Bypass traverse checking,将用户添加到该策略,然后单击OK
l         在右侧窗格中,右键单击Replace a process level token,将用户添加到该策略,然后单击OK
l         关闭“Local Security Setting” MMC 管理单元。 
如图:
5.  重新启动系统,用sqlserver用户登陆系统;
6.  再重新启动系统,已administrator用户登陆,打开SERVICES管理工具,配置用该用户启动MSSQLSERVER服务;
   
 
 这样我们就可以通过限制SQLSERVER用户的权限来控制SQLSERVER扩展存储过程的权限。现在sqlserver用户只对D:\PROGRMAM FILE\Microsoft SQL Server\MSSQL目录有写的权限,这样就降低了通过xp_cmdshell来删除系统文件的风险。
 
通过收购来配置是比较繁琐的,幸运的是MS SQLSERVER已经提供了这样的工具来配置启动启动账号,你可以通过SQLSERVER的企业管理器配置,入下图:
这样SQL SERVER企业管理器会自动帮你配置好所有的必要条件。包括目录的访问权限,启动服务的权限,访问注册表的权限等等。所以我们正确的配置顺序是:
1.  建立用户;
2.  在SQL SERVER企业管理器中配置该用户启动;
3.  在分配其它相应的权限(如果需要复制操作);
备注:
通过SQL Server企业管理器增加的服务启动账号,会在registry中增加很多信息,即使你更换用户也不会删除,所以在改变服务启动账号不要频繁更换,这样会增大registry的容量。同时要注意,只有属于sysadmin角色的用户才可以配置SQL Server服务的启动账号。
总结:                                           
构建一个安全高效的SQLSERVER是多方面的,深入了解SQLSERVER的运行机制是基础。我们不但要考虑数据库用户的安全,也要考虑SQLSERVER服务的安全性。

 

上下文章:

 

上一篇文章: 用T-SQL导入文件数据到SQL Server 下一篇文章: SQL Server 2000之日志传送功能(2)

相关文章:

  • 个人IM用于办公不安全、难管理怎么办?
  • 微软08年11月安全公告发布
  • Windows 7内置定位服务引发安全疑虑
  • 微软明日发布2个安全补丁 修复系统组件漏洞
  • 本周安全预警:盗号木马专偷电子邮箱账号密码

相关软件:

  • 瑞星卡卡上网安全助手 6.0.0.62
  • FileZilla Server V0.9.28
  • 费尔托斯特安全病毒库 8.207.24477(2008.11.04.09:05)
  • 瑞星全功能安全软件 2009 体验版
  • 奇虎360安全卫士 4.4.0.1005 正式版
  • 卡巴斯基互联网安全套装 (KIS) 8.0.0.501 英文版

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

数据库类分类导航

  • SQL Server
  • MySQL Server
  • DB2
  • Oracle
  • ACCESS
  • Foxpro
  • PowerBuilder
  • Sybase

本类经典文章推荐

  • 选择SQL Server恢复模型确保正确备...
  • 为SQL Server Authentication配置...
  • 最简便的备份MySql数据库方法
  • 精通数据库系列之入门-基础篇
  • 精通数据库系列之入门-基础篇2
  • 精通数据库系列之入门-基础篇3
  • 精通数据库系列之入门-技巧篇1
  • 精通数据库系列之入门-技巧篇2
  • 精通数据库系列之入门-技巧篇3
  • 精通数据库系列之入门-技巧篇4

SQL Server阅读排行

  • SQL Server数据库技术(96)
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 精通数据库系列之入门-基础篇2
  • 精通数据库系列之入门-技巧篇1
  • SQL SERVER应用问题解答13例(一)
  • SQL Server数据库技术(99)
  • 精通数据库系列之入门-基础篇3
  • SQL Server数据库技术(101)

数据库类阅读总排行

  • MySQL中的SQL-- TEXT、DATE、和SE...
  • MYSQL初学者使用指南 上篇
  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • MYSQL初学者使用指南 下篇
  • SQL Server数据库技术(96)
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 如何为用户设置密码(MYSQL)

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有