SQL Server 2008中的Service SID 介绍
【介绍】
我们打开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 介绍的更多相关文章
- SQL Server 2008中新增的 1.变更数据捕获(CDC) 和 2.更改跟踪
概述 1.变更数据捕获(CDC) 每一次的数据操作都会记录下来 2.更改跟踪 只会记录最新一条记录 以上两种的区别: http://blog.csdn.n ...
- SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪
来源:http://www.cnblogs.com/downmoon/archive/2012/04/10/2439462.html 本文主要介绍SQL Server中记录数据变更的四个方法:触发器 ...
- SQL点滴15—在SQL Server 2008中调用C#程序
原文:SQL点滴15-在SQL Server 2008中调用C#程序 T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可 ...
- 在SQL Server 2008中调用.net,dll
原文:在SQL Server 2008中调用.net,dll T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQ ...
- SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑
SQL Server 2008中的CDC(Change Data Capture)功能使用及释疑 关键词:CDC 原文:http://www.cnblogs.com/chenxizhang/arc ...
- SQL SERVER 2008中使用VARBINARY(MAX)进行图像存取的实现方法
在数据库应用项目开发中,经常会使用一些二进制的图像数据,存储和读取显示图像数据主要采用的是路径链接法和内存流法.路径链接法是将图像文件保存在固定的路径下,数据库中只存储图像文件的路径和名称 ...
- SQL Server 2008中的数据压缩
SQL Server 2008中引入了数据压缩的功能,允许在表.索引和分区中执行数据压缩.这样不仅可以大大节省磁盘的占用空间,还允许将更多数据页装入内存中,从而降低磁 盘IO,提升查询的性能.当然,凡 ...
- SQL Server 2008中增强的"汇总"技巧
本文转载:http://www.cnblogs.com/downmoon/archive/2012/04/06/2433988.html SQL Server 2008中的Pivot和UnPivot: ...
- SQL Server 2008中数据压缩
SQL Server 2008中引入了数据压缩的功能,允许在表.索引和分区中执行数据压缩.这样不仅可以大大节省磁盘的占用空间,还允许将更多数据页装入内存中,从而降低磁盘IO,提升查询的性能.当然,凡事 ...
随机推荐
- /etc/hosts.conf
一 作用 指定如何解析主机域名.可设置网络安全. 二 参数说明 默认情况,/etc/hosts.conf 文件有如下内容—— order hosts,bind ...
- A Realistic Evaluation of Memory Hardware Errors and Software System Susceptibility
http://www.cs.rochester.edu/~kshen/papers/usenix2010-li.pdf Abstract Memory hardware reliability is ...
- [dpdk] 读官方文档(2)
续前节.切好继续: 一,文档里提到uio_pci_generic, igb_uio, vfio_pci三个内核模块,完全搞不懂,以及dpdk-devbind.py用来查看网卡状态,我得到了下边的输出: ...
- 后半部分样式和JS前半部分脚本语言
样式 剩余样式: 1.<div style=display:"none"></div>:nono 是隐藏该元素内容,block是显示该元素内容 2.< ...
- Xlib 窗口属性
Xlib 窗口属性 转, 无法找到原作者 所有的 InputOutput 窗口都可以有零个或者多个像素的边框宽度,一个可选的背景,一个事件压制掩码(它压制来自孩子的事件传播),和一个 property ...
- (转)CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example)
CAS (4) —— CAS浏览器SSO访问顺序图详解(CAS Web Flow Diagram by Example) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0 ...
- nrf51822裸机教程-SPI(主)
关于SPI总线的介绍这里就不细说了,网上有很多介绍SPI总线时序的. SPI总线的本质就是一个环形总线结构,在时钟驱动下两个双向移位寄存器进行数据交换. 所以SPI总线的特色就是:传输一字节数据的同时 ...
- JQuery源码之“名叫extend的继承”
提起JS中的继承很多”大神“们都会提起call,apply,单纯的对象赋值继承,以及原型链继承等众多的方式以及它们的不足之处,而且还会不时的把一些面向对象的设计模式”团团“的带出来,可谓是厉害非常啊! ...
- 让Dreamweaver支持less
编辑->首选参数->文件类型/编辑器->在代码视图中打开->添加" .less"后缀
- [LeetCode] Subsets (bfs的vector实现)
Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...