原版的:http://blog.csdn.net/dba_huangzj/article/details/37924127  ,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者允许,不论什么人不得以“原创”形式公布。也不得已用于商业用途。本人不负责不论什么法律责任。

前言:

SQL Server是一个Windows 服务,以某个Windows用户或系统用户权限执行在Windows操作系统上。选择合适的帐号执行SQL Server是非常重要的。本系列文章仅仅关注安全性方面。

选择合适的帐号之所以非常重要。当中一个原因是假设权限不恰当,用户(client)能够通过SQL Server对Windows OS或其它资源进行非预期使用。

实现:

首次选择帐号发生在安装过程中,可是在安装过后能够更改。怎样安装SQL Server超出本文范围。所以这里跳过安装过程中选择帐号部分。在安装完成之后,能够依据以下步骤实现。

实现步骤:

1. 在命令行输入:services.msc 打开服务管理器。找到SQL Server服务,如图:

2. 右键这个服务。选择【属性】,并查看当前执行帐号 :

3. 打开SQL Server 配置管理器,找到SQL Server相应实例名的选项,本人机上有两个实例,一个是2008R2。一个是2012,2012为命名实例,所以选择SQL Server(SQL2012)这个服务,并右键选择【属性】。如图:

4. 打开【属性】页之后,选择【登录】页。如图:

5. 选择【内置帐户】。下拉框中有三种可选项,兴许部分将介绍这些帐号:

6. 当改动了帐号之后,点击【确定】button。会提示须要重新启动SQL Server服务。点击【是】。然后重新启动服务,因为改动执行帐号必须重新启动服务,所以假设在正式环境下。须要慎重,而且计划性地改动。

7. 至此。我们演示了怎样改动SQL Server的执行帐号。接下来将介绍一些原理及注意事项。

原理:

SQL Server服务继承了底层操作系统(即Windows OS)上Windows帐号的权限。它并不一定须要有所在机器上的管理员权限。

仅仅须要有对数据文件/事务日志文件、错误日志文件、备份文件所在文件夹的权限和少量系统权限就可以。

假设在安装SQL Server之后改动服务帐号,强烈建议使用SQL Server配置管理器实现,而不要用Windows 服务控制管理器。因为后者并不能非常好地进行权限管控。

在Windows Server 2008 R2中,在安装SQL Server过程中默认使用虚拟帐号(Virtual Account,将在兴许文章介绍)作为启动帐号。假设在步骤5中选择了【内置帐号】,不须要提供password,这些password由操作系统管理和预设。以下简要介绍一下步骤5中的两类帐号:

  • Local System:这是一个拥有所在计算机上管理员权限的Windows 系统帐号,在网络中显示为(<Domain>\<Machine>)形式。假设机器存在于域环境中,能够对这类帐号授予訪问网络资源的权限。
  • Network Service:这个帐号相对于Local System而言,有非常多本机权限限制,可是能够和Local System一样訪问网络资源。

你能够选择一个已经创建的Windows或域帐号。以全名形式((<Domain>\<Account>)作为执行帐号,可是要确保这个帐号没有受到WIndows上的“password过期策略”影响,否者可能在系统执行了一段时间之后因为password过期而导致整个SQL Server服务停止。

作为实践,建议使用实际Windows 帐号替代内置帐号,因为内置帐号被多种服务所共享,权限管控不如实际WIndows 帐号。比方攻击者能够使用管理员权限登录SQL Server,并用xp_cmdshell等外部存储过程进行操作系统级别的攻击。

使用实际Windows帐号能降低这样的情况的发生机会。

很多其它信息:

要允许一个Windows帐号能用于执行一个服务(不是全部帐号都能执行服务)。须要授予【Log on as a service right】(中文为【信任计算机和用户帐户能够执行委派】)权限。过程例如以下:

1. 在本机上。打开管理工具,并选择【Local Security Policy】。中文为【本地安全策略】,Win8 系统能够控制面板→【系统和安全】中找到【Log on as a service right】(中文为【信任计算机和用户帐户能够执行委派】):

2.加入所需帐号,如图:

假设使用WIndows Server Core版本号,因为没有GUI能够改动,也有可能你不能直接登录目标server用GUI操作(非core版本号)时。能够在另外一些机器上实现配置:

步骤:

1. 打开计算机管理器(compmgmt.msc)右键根文件夹。选择【连接到还有一台计算机】,输入server地址,如图:

成功连接之后会变成下图。注意【计算机管理(本地)】 已经变成了【计算机管理(SQL-A)】:

2.在【服务和应用程序】节点能够找到SQL Server配置管理器,然后就能够进行前面所说的配置了。

创建域用户作为服务帐号:

假设在域环境下,能够在活动文件夹server(Active Directory Server)上通过【Active Directory 管理中心】(Active Directory Administrative Center)上的【Active Directory 用户和计算机】(Active Directory Users and Computers )工具加入用户到域环境的机器上。

如图:

在创建时,用户选项仅仅勾选下图就可以。除非特殊须要。否则不建议勾选【用户下次登录须更改password】:

假设希望用于服务帐号的password超时,建议使用Windows Server 2008出现的【托管服务帐号】(managed service accounts),这部分在兴许文章介绍。

扩展阅读:

配置 Windows 服务帐户和权限(http://msdn.microsoft.com/zh-cn/library/ms143504.aspx

Chapter 1 Securing Your Server and Network(1):选择SQL Server业务经理的更多相关文章

  1. Chapter 1 Securing Your Server and Network(1):选择SQL Server运行账号

    原文:Chapter 1 Securing Your Server and Network(1):选择SQL Server运行账号 原文出处:http://blog.csdn.net/dba_huan ...

  2. Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse

    原文:Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse 原文出处:http://blog.csdn.net/dba_h ...

  3. Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙

    原文:Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙 原文出处:http://blog.csdn.net/dba_hu ...

  4. Chapter 1 Securing Your Server and Network(6):为SQL Server訪问配置防火墙

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangz ...

  5. Chapter 1 Securing Your Server and Network(12):保护链接server

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363.专题文件夹:http://blog.csdn.net/dba_huangz ...

  6. SQL Server扫盲系列——安全性专题——SQL Server 2012 Security Cookbook

    由于工作需要,最近研究这本书:<Microsoft SQL Server 2012 Security Cookbook>,为了总结及分享给有需要的人,所以把译文公布.预计每周最少3篇.如有 ...

  7. SQL Server on Linux: How? Introduction: SQL Server Blog

    SQL Server Blog Official News from Microsoft’s Information Platform https://blogs.technet.microsoft. ...

  8. windows10下sql server 2005 无法运行或sql server服务无法启动的完美解决方案

    问题:升级windows10后,sql server 2005 无法运行或sql server服务&sql server agent无法启动,如下图,怎么办? 一般情况下,我们第一反应就是sq ...

  9. SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑

    本文总结一下SQL SERVER 2012/2014链接到SQL SERVER 2000的各种坑,都是在实际应用中遇到的疑难杂症.可能会有人说怎么还在用SQL SERVER 2000,为什么不升级呢? ...

随机推荐

  1. poj 1274The Perfect Stall

    第一次接触二分图匹配. 这题是一个匈牙利算法的模板题直接套即可. 题意是  给你奶牛和谷仓的个数a和b,接下来a行是奶牛喜欢去的谷仓.第一个是谷仓个数,接下来是谷仓编号. 这里我们把行当奶牛,列当谷仓 ...

  2. C#名单:一个简单的实现

    C#它配备了一个泛型列表类,在很多情况下,足以.实际应用中遇到.最好的报价C#该链表,包装成自己的阶级需求. 该名单的努力的原则,基本实现探索实施一些简单的方法. 一个.(Node.cs文件)作为一类 ...

  3. css Tab选项卡1

    利用   锚点原理 以及overflow:hiden 结合,实现纯  css  tab 方式 兼容ie6 + 适合单个tab   不需要js          注意点  红色方框的   a 对应a   ...

  4. [python]自问自答:python -m参数? (转)

    python -m xxx.py 作用是:把xxx.py文件当做模块启动但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...

  5. 关于TCP/IP协议栈(转)

    1. TCP/IP协议栈 与OSI参考模型不同,TCP/IP协议栈共有4层,其中网络接口层对应OSI中的物理层和数据链路层,应用层对应OSI中的应用层.表示层和会话层. 在网络接口层的主要协议有:AR ...

  6. Shark集群搭建配置

    一.Shark简单介绍 Shark是基于Spark与Hive之上的一种SQL查询引擎,官网的架构图及性能測试图例如以下:(Ps:本人也做了一个性能測试见Shark性能測试报告) 我们涉及到了2个依赖组 ...

  7. MySQL SQL分析(SQL profile)

    分析SQL优化运营开销SQL的重要手段.在MySQL数据库.可配置profiling参数启用SQL分析.此参数可以在全局和session水平集.级别则作用于整个MySQL实例,而session级别紧影 ...

  8. 使用requirejs实现模块化编程

    > 序言 - -# 公司大了,业务多了,前端代码量也逐渐增大,我们渐渐的依赖js实现的交互越来越多,长期以来会导致我们的代码维护越来越困难,所以依赖的插件也越来越多..比如这样页面中有大量的js ...

  9. TinyMCE实现简单的本地上传

    TinyMCE这个东西很多地方再用,不过我以前一直没用过,最近才接触,因为有一套现成的metro风格的皮肤,仅此而已,不过最终如何调用还是我得来实现.其他的都好说,网上的资料一大把一大把的,唯独这个本 ...

  10. AES加密CBC模式兼容互通四种编程语言平台【PHP、Javascript、Java、C#】

    原文:AES加密CBC模式兼容互通四种编程语言平台[PHP.Javascript.Java.C#] 由于本人小菜,开始对AES加密并不了解,在网络上花了比较多时间查阅资料整理: 先简单从百度找来介绍: ...