【介绍】

我们打开SQL Server 2008 Management Studio, 会发现有如下几个登录: NT SERVICE\ClusSvc, NT SERVICE\MSSQL$KATMAI和 NT SERVICE\SQLAgent$KATMAI,这几个登录在安装SQL Server的时候,就会被创建。(其中NT SERVICE\ClusSvc则只有在群集环境下被创建)。我们这里介绍一下这些登录,有什么用途,对我们系统的安全性有什么影响,我们能否把他们删除,以及删除掉的后果是什么。

【SERVICE SID的引入】

NT SERVICE\MSSQL$KATMAI, NT SERVICE\SQLAgent$KATMAI和NT SERVICE\ClusSvc 其实都是Service SID所对应的名字。Service SID的引入,是为了解决多个Service可能同用一个service帐号所带来的安全隐患。如IIS 使用Network Service帐号,可能其他服务也使用Network Service帐号。为了使得IIS能够连接到SQL Server, 我们可能会把Network Service作为SQL Server的login, 但是这是不安全的。因为其他服务如果以Network Service做为启动帐号的话,也能访问SQL Server。为了解决这个问题,在SQL Server 2008/Windows Server 2008及以后,我们有了SID这个概念,这样,不同的服务,即使服务启动帐号是相同的,它们的SID也是不同的。

所以,我们这里的一些logins,并不是Windows Users或Group的名字, 而是SID的名字。其相对应的SID值,我们可以用命令 sc  showsid serviceName所得到。如下:

【SQL Server Agent的启动帐号是否需要sysadmin的权限】

如果操作系统是Windows 2003或者SQL Server 版本低于SQL Server 2008,那么SQL Server Agent的启动帐号需要sysadmin权限,否则SQL Server Agent无法启动。但是对于SQL Server 2008 在Windows 2008上面,我们发现,表面看来,似乎并不一定需要这个权限。

SID NT SERVICE\SQLAgent$KATMAI

Service Account login CONTOSO\sqlu

效果

有,并且是sysadmin

有,并且是sysadmin

SQL Agent能正常启动

有,并且是sysadmin

有,但取消sysadmin权限

SQLAgent能正常启动

有,并且是sysadmin

删除

SQLAgent能正常启动

有,但不是sysadmin

有,并且是sysadmin

SQLAgent能正常启动

有,但不是sysadmin

有,但取消sysadmin权限

SQLAgent无法启动

有,但不是sysadmin

删除

SQLAgent无法启动

删除

有,并且是sysadmin

SQLAgent能正常启动

删除

有,但取消sysadmin权限

SQLAgent无法启动

删除

删除

SQLAgent无法启动

但是上述的结果表明,或者SID [NT SERVICE\SQLAgent$KATMAI]或者Agent Service Account (CONTOSO\sqlu) 其中之一必须要有sysadmin权限。否则SQLAgent这个服务就不能正常启动。也就是说,SQL Server Agent通过NT SERVICE\SQLAgent$KATMAI或CONTOSO\sqlu来登录SQL Server。Sysadmin的权限还是需要的。

【群集环境中,是否需要NT AUTHORITY\SYSTEM登录】

我们知道,在群集环境中,Cluster服务会对SQL Server每隔一分钟做一次ISALIVE检查。ISALIVE检查是通过群集服务帐号进行的。在Windows 2008环境下,群集服务是通过Local System也就是NT AUTHORITY\SYSTEM来连数据库的。

我们有时候会发现,把登录NT AUTHORITY\SYSTEM删除,ISALIVE检查也能够成功。这是因为在我们的登录中,有NT SERVICE\ClusSvc这个SID名,所以,群集服务的ISALIVE检查通过NT AUTHRORITY\SYSTEM或NT SERVICE\ClusSvc来登录SQL Server。

【NT SERVICE\MSSQL$KATMAI】

我们可能会有需要要更改SQL Server的服务启动帐号。更改SQL Server的服务启动帐号会涉及到一系列权限的变更。但是如果有NT SERVICE\MSSQL$KATMAI这个服务SID,那么权限的变更会变得最小,因为即使服务启动帐号有变化,但是服务的SID不会有变化。涉及到服务启动帐号的登录应用还是能够正常工作。

【小结】

NT SERVICE\MSSQL$KATMAI, NT SERVICE\SQLAgent$KATMAI和NT SERVICE\ClusSvc服务SID能够使得我们的安全管理更加便利。这几个登录在安装SQL Server的时候就会被创建。添加这几个login对安全没有什么副作用。能使得我们的安全管理更加方便。

但是我们也不能认为有这几个SID的帐号,就能随便把其他的登录如NT AUTHORITY\SYSTEM给删除。某些应用,如VSS Writer ,Windows自动更新等,还是需要用服务启动帐号来进行处理。

SQL Server 2008中的Service SID 介绍的更多相关文章

  1. SQL Server 2008中新增的 1.变更数据捕获(CDC) 和 2.更改跟踪

    概述 1.变更数据捕获(CDC)        每一次的数据操作都会记录下来 2.更改跟踪       只会记录最新一条记录   以上两种的区别:         http://blog.csdn.n ...

  2. SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪

    来源:http://www.cnblogs.com/downmoon/archive/2012/04/10/2439462.html  本文主要介绍SQL Server中记录数据变更的四个方法:触发器 ...

  3. SQL点滴15—在SQL Server 2008中调用C#程序

    原文:SQL点滴15-在SQL Server 2008中调用C#程序 T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可 ...

  4. 在SQL Server 2008中调用.net,dll

    原文:在SQL Server 2008中调用.net,dll T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQ ...

  5. SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑

    SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑 关键词:CDC   原文:http://www.cnblogs.com/chenxizhang/arc ...

  6. SQL SERVER 2008中使用VARBINARY(MAX)进行图像存取的实现方法

          在数据库应用项目开发中,经常会使用一些二进制的图像数据,存储和读取显示图像数据主要采用的是路径链接法和内存流法.路径链接法是将图像文件保存在固定的路径下,数据库中只存储图像文件的路径和名称 ...

  7. SQL Server 2008中的数据压缩

    SQL Server 2008中引入了数据压缩的功能,允许在表.索引和分区中执行数据压缩.这样不仅可以大大节省磁盘的占用空间,还允许将更多数据页装入内存中,从而降低磁 盘IO,提升查询的性能.当然,凡 ...

  8. SQL Server 2008中增强的"汇总"技巧

    本文转载:http://www.cnblogs.com/downmoon/archive/2012/04/06/2433988.html SQL Server 2008中的Pivot和UnPivot: ...

  9. SQL Server 2008中数据压缩

    SQL Server 2008中引入了数据压缩的功能,允许在表.索引和分区中执行数据压缩.这样不仅可以大大节省磁盘的占用空间,还允许将更多数据页装入内存中,从而降低磁盘IO,提升查询的性能.当然,凡事 ...

随机推荐

  1. Yii源码阅读笔记(一)

    今天开始阅读yii2的源码,想深入了解一下yii框架的工作原理,同时学习一下优秀的编码规范和风格.在此记录一下阅读中的小心得. 每个框架都有一个入口文件,首先从入口文件开始,yii2的入口文件位于we ...

  2. Web前端开发:什么是页面重回(repaints)与回流(reflow)

    前言:什么是重绘与回流? 重绘(repaints)是一个元素外观的改变所触发的浏览器行为,例如改变vidibility.outline.背景色等属性.浏览器会根据元素的新属性重新绘制,使元素呈现新的外 ...

  3. javascript:void(0)与#整理

    window.location.href="/signup/devicelogin.shtml"; 指跳转到引号的url地址 #包含了一个位置信息,默认的锚点#是top,网页的顶端 ...

  4. hibernate 数据库列别名自动映射pojo属性名

    package com.pccw.business.fcm.common.hibernate; import java.lang.reflect.Field; import java.math.Big ...

  5. React.js model

    // tutorial1.js var CommentBox = React.createClass({ render: function() { return ( <div className ...

  6. Java反射机制深入研究

    ava 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”.   在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? ...

  7. HTML5 本地存储 LocalStorage

    说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个co ...

  8. sort,ksort,asort的区别

    sort--对数组的val进行排序 ksort--对数组的key值进行排序 asort--对数组进行排序,键与值的对应关系不变 1.sort对数组排序 格式如下:bool sort(array &am ...

  9. caption,为表格增加标题和摘要

    格式: <table summary="***"> <caption>***</caption> <tr> </tr> ...

  10. json-lib 之jsonConfig具体应用

    一,setCycleDetectionStrategy 防止自包含 public static void testCycleObject() {         CycleObject object ...