参考文献:

http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html

转载自:

https://www.cnblogs.com/xwdreamer/archive/2012/07/03/2574747.html

前言

今天在安装sqlserver2008 r2的时候,在Server Configuration阶段要求我设定sqlserver中各种服务的账户名称,如下图所示:

账户类型可以在后期修改,改的就是服务中的log on as里面的属性。

那么Local system/Network service/Local Service这三种账户有什么区别呢?

LocalSystem   账户

LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证。这个服务账户可以打开注册表的HKEY_LOCAL_MACHINE\Security键,当LocalSystem访问网络资源时,它是作为计算机的域账户使用的。

举例来说,以LocalSystem账户运行的服务主要有:WindowsUpdate   Client、   Clipbook、Com+、DHCP   Client、Messenger   Service、Task   Scheduler、Server   Service、Workstation   Service,还有Windows   Installer。

Network   Service   账户

Network   Service账户是预设的拥有本机部分权限的本地账户,它能够以计算机的名义访问网络资源。但是他没有Local   System   那么多的权限,以这个账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。Network   Service账户通常可以访问Network   Service、Everyone组,还有认证用户有权限访问的资源。

举例来说,以Network   Service账户运行的服务主要有:Distributed   Transaction   Coordinator、DNS   Client、Performance   Logs   and   Alerts,还有RPC   Locator。

Local   Service   账户

Local   Service账户是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。Local   Service账户通常可以访问Local   Service、Everyone组还有认证用户有权限访问的资源。

举例来说,以Local   Service账户运行的服务主要有:Alerter、Remote   Registry、Smart   Card、SSDP,还有WebClient。

简单说明:

Local   system   :本地系统用户,   个人电脑通常选择这个用户

Network   service   :网络服务用户,   通常需要远程连接的都使用这个

Local   Service   :本地服务

另外还有一个要求输入用户名密码的那个用户是域用户,这个是做集群的时候选择的登陆方式

PS:2012-7-10

今天在安装APEXSQL的时候,能够成功安装,但是不能连接数据库,每次都让我创建一个administration的账户,但是我创建了,加入到了administrators组还是不能连接,最后在SQL Server的properties中,将账户有network service 改为local system就可以连接了。

之所以要使用local system是因为apexsql里面要用到一些系统底层的东西,所有要求最高权限。

PS:2012-8-24

如果我们打开任务管理器,在user name那一列我们能够看到很多账户名,常见的有以下几类

1.) SYSTEM
2.) NETWORK SERVICE
3.) Domain Users
4.) LOCAL SERVICE
那么这些到底都有什么区别呢,这些在下面的这篇文章有种介绍。

http://www.vistaheads.com/forums/microsoft-public-windows-vista-general/86838-what-system-network-service-account.html

那么应该使用什么账户来启动sql server呢?下面这篇文章给出了详细的介绍。

http://social.msdn.microsoft.com/Forums/en/sqlsecurity/thread/31d57870-1faa-4e14-8527-ce77b1ff40e4

我来总结一下上面这篇文章的中心思想。

  1. 不用使用bulit-in的三张账号来启动sql server。
  2. local system的权限太高了,如果sql server 被黑客入侵,创建一个thread,那么这个thread就具有和sqlservr.exe这个进程相同的权限,这个thread可以在本机上做任何操作。还有一个弊端就是local system只有在本机上有很高的权限,但是出了本机,就没有什么权限了,比如要做DB Mirroring的时候,使用local system就不行。
  3. network service相对于local system在本机上权限少了一点,但是他可以访问网络资源,比如可以做DB Mirroring,但是有一个不好就是他的权限还是弱了一点。network service使用的是computer account。
  4. 至于local service,他是权限最小的一个built-in账户,只能用于启动本地服务,sql browser建议使用local service。这在在msdn上也有提到,给sqlbrowser.exe一个较低权限的账户。
  5. sql server启动账户的最佳事件就是使用authenticated user。如果机器在domain里面,那么使用domain user,如果没有在domain里面就使用local user。不乱是domain user还是local user都需要给予特定的权限,权限不要太高。

参考:SQL Server 2008中的Service SID

在我们安装完sql server 2008和2012以后,我们会发现在security下面的login中有类似NT Service\MSSQL$SQL2012、NT SERVICE\ReportServer$SQL2012和NT SERVICE\SQLAgent$SQL2012这样子的账户。这些其实都是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也是不同的。

对于NT Service\MSSQL$SQL2012、NT SERVICE\ReportServer$SQL2012和NT SERVICE\SQLAgent$SQL2012这些login,并不是Windows Users或Group的名字, 而是SID的名字。其相对应的SID值,我们可以用命令 sc  showsid serviceName所得到,如下图所示:

windows内置账户的更多相关文章

  1. Windows内置安全主体

    转自:https://blog.csdn.net/xcntime/article/details/51746148 导读:对于Windows内置安全主体特别需要注意的是:你无法创建.重命名和删除它们, ...

  2. 利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比)

    利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比) 以下是红色内容是在命令行运行: C:\Users\Administrator>winsat diskWindow ...

  3. [转帖]Windows 内置端口转发功能

    如何在Windows中使用netsh命令进行端口转发 https://www.freebuf.com/articles/system/176889.html 早上自己做了下实验,的确可以.linux下 ...

  4. Windows内置系统账户:Local system/Network service/Local Service 区别

    LocalSystem 账户  LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证.这个服务账户可以打开注册表的HKEY_LO ...

  5. 运行于Windows内建账户下的服务访问映射网络驱动器的方法

    Windows服务如果是运行在本地系统帐户下或本地服务帐户下,它只能访问这个账户自己创建的映射驱动器,UNC路径访问则不受次限制. LocalService Account (NT AUTHORITY ...

  6. windows10开启内置ubuntu系统,使用xshell连接

    windows安装配置ubuntu系统内置子系统 官方文档:https://docs.microsoft.com/zh-cn/windows/wsl/about https://www.jianshu ...

  7. Windows 10 内置管理员无法打开Metro应用方法

    前言 在windows 10中,由于权限原因,使用了内置管理员账户.虽然这样权限获取了,但是不能打开Metro应用,Microsoft Edge浏览器等,有点不太好.那有没有方法可以修改呢?这是本文要 ...

  8. (转)内置系统账户:Local system/Network service/Local Service 区别

    最近会转载一些 MSSQL 基础相关的文章. 参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 前言 今天在 ...

  9. 电脑技巧:Win8/Win10无法打开这个应用|无法使用内置管理员账户的完美解决方法

    现在装win10系统的同伴越来越多了,相比于win7,win10在某些设置方面也有些变化,比如我们在使用win8或者win10时,会碰到如图所示的对话框: Windows10/Windows8无法使用 ...

  10. Win8/Win10无法打开这个应用 内置管理员账户

    现在装win10系统的同伴越来越多了,相比于win7,win10在某些设置方面也有些变化,比如我们在使用win8或者win10时,会碰到如图所示的对话框: Windows10/Windows8无法使用 ...

随机推荐

  1. UE4 InstancedStaticMesh使用

    在绘制大批量近似模型时,Unity有GPU Instancing(https://www.cnblogs.com/hont/p/7143626.html),而UE中有 HISM和ISM(Instanc ...

  2. XML Schema 字符串数据类型及约束详解

    字符串数据类型用于包含字符字符串的值.字符串数据类型可以包含字符.换行符.回车符和制表符. 以下是模式中字符串声明的示例: <xs:element name="customer&quo ...

  3. 【题解】A566.三点共线

    题目大意,给定在平面直角坐标系中的多个点,判断有多少个三元组 \((A, B, C)\) 满足共线性质. 题目链接:A566.三点共线. 大题思路就是暴力所有的三元组,判断三个元素的斜率是否相同即可. ...

  4. 1.Prism

    Region(区域)在程序编写的过程中我们肯定会遇到在一个区域上显示不同的内容,这些内容可能属于不同窗口,之前是弄个panel,需要显示哪个窗口就给让panel显示. 1.定义区域2.提供对区域的访问 ...

  5. NOIP模拟67

    前言 从这一次到 71 都是多校联考了,尽管考的不咋样.. T1 数据恢复 解题思路 这个题真的是.. 先声明一个点,对于优先队列以及 set 都是在某个元素插入的时候进行比较,但是在之后如果修改比较 ...

  6. (拼多多)pdd的Anti-Content

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6 ...

  7. ETL工具-nifi干货系列 第十一讲 处理器UpdateAttribute使用教程

    1.在这里我们重温下nifi里面一个重要的概念FlowFile,如下图所示: FlowFile:FlowFile代表NiFi中的单个数据.nifi数据流中流动的就是flowfile,每个nifi处理器 ...

  8. golang 泛型的格式写法

    Go语言中的泛型(Generics)是在 Go 1.18 版本中引入的一个重要特性,它允许你编写可重用的代码,而不需要为每种数据类型重复编写相同的逻辑. 泛型通过参数化类型(type paramete ...

  9. WebStorm 中自定义文档注释模板

    WebStorm 中自定义文档注释模板 前提 使用WebStrom写HTML,JavaScript,进行头部注释. 减少重复劳动 养成良好的代码习惯,规范化代码,规范的注释便于后续维护. 头部注释内容 ...

  10. Java基础:throw和throws的详解

    总结来说,throw是用来抛出一个具体的异常实例,而throws是用来声明方法可能会抛出哪些类型的异常,是对调用者的一种通知和要求. 1. throw 作用: throw关键字用于在方法体内实际抛出一 ...