Chapter 1 Securing Your Server and Network(2):管理服务的SIDs
未经作者允许,不论什么人不得以“原创”形式公布,也不得已用于商业用途,本人不负责不论什么法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/37924127
前言:
像SQL Server这样的执行在一个Windows 帐号的安全上下文下的服务,假设还有其它服务使用同样的Windows帐号执行,那么这些服务(非SQL Server)将可能訪问一些非预期资源,如文件和文件夹上的Access Control List(ACL/訪问控制列表),并进行一些不应该有的操作,这些明显是不合理的。
从Windows Server 2008 開始,微软引入一个叫“服务SID”的概念,每一个服务都一个Security Identifier(安全标识)。通过SID,能够针对特定服务创建一个能用于Windows 安全性模式下的标识。这个标识同一时候能够使得使用同样帐号或者内置帐号的每一个服务权限都不一样。
每一个服务的SID会在安装在Windows Server 2008过程中启用,并授予权限。
实现:
以下使用命令行工具查看现有的SID,并为特定服务创建:
1. 打开命令行工具(CMD.EXE)
2.输入命令:
sc qsidtype mssql$sql2012 --mssql$sql2012 为命名实例名,假设是默认实例,能够使用mssqlserver
以下两个图各自是命名实例和默认实例的结果:
命名实例:本机命名实例为sql2012
默认实例:
针对上面的结果,SERVICE_SID_TYPE有三种可能的类型:
- NONE:该服务没有SID。
- UNRESTRICTED:该服务有SID。
- RESTRICTED:该服务有SID而且有一个write-restriction 令牌(token)
3. 假设SERVICE_SID_TYPE为NONE,能够使用以下命令创建SID:
sc sidtype mssql$sql2012 UNRESTRICTED
假设使用User Account Control(UAC/用户帐户控制,在每次进行一个管理任务时侦听),实现上面操作须要使用【以管理员身份执行】CMD命令或者用ctrl+x打开。当SQL Server的SID启用之后,全部SQL Server所在机器上的额外权限(如备份文件夹上的ACL、使用BULK INSERT命令进行文件导入等)都须要会使用SID,而不是SQL Server服务的执行帐号。
原理:
SQL Server服务的SID由服务和实例名派生出来。格式为NT SERVICE\MSSQLSERVER(默认实例)或NT SERVICE\MSSQL$<INSTANCENAME>(命名实例)。
对于SC命令的简要解释:
- sc.exe 命令用于与服务控制器交互。
- sc qsidtype命令查询当前SID的状态。
- sc sidtype提供改动功能。
假设你想移除SID,能够把服务改为NONE。而使用UNRESTRICTED创建一个SID。
注意:不要对SQL Server使用RESTRICTED 选项,由于这样会导致SQL Server服务所需的某些资源被堵塞,从而导致SQL Server无法启动。
下一篇:http://blog.csdn.net/dba_huangzj/article/details/38017703
Chapter 1 Securing Your Server and Network(2):管理服务的SIDs的更多相关文章
- Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击
原文:Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击 原文出处:http://blog.csdn.net/dba_huang ...
- Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证
原文:Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证 原文出处:http://blog.csdn.net/dba_huan ...
- Chapter 1 Securing Your Server and Network(8):停止未使用的服务
原文:Chapter 1 Securing Your Server and Network(8):停止未使用的服务 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- 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 ...
- 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 ...
- Chapter 1 Securing Your Server and Network(5):使用SSL加密会话
原文:Chapter 1 Securing Your Server and Network(5):使用SSL加密会话 原文出处:http://blog.csdn.net/dba_huangzj/art ...
- Chapter 1 Securing Your Server and Network(4):使用虚拟服务帐号
原文:Chapter 1 Securing Your Server and Network(4):使用虚拟服务帐号 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- Chapter 1 Securing Your Server and Network(3):使用托管服务帐号
原文:Chapter 1 Securing Your Server and Network(3):使用托管服务帐号 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
- 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 ...
随机推荐
- 命令模式在MVC框架中的应用
事实上在项目开发中,我们使用了大量的设计模式,不过这些设计模式都封装在框架中了,假设你想要不只局限于简单的使用,就应该深入了解框架的设计思路. 在MVC框架中,模式之中的一个就是命令模式,先来看看模式 ...
- Linux 内核升级步骤
1.解压内核文件包#xz -d linux-3.2.63.tar.xz #tar xvf linux-3.2.63.tar 2.拷贝解压文件到/usr/src#cp -r linux-3.2.63 / ...
- Redis集群明细文档(转)
相信很多用过Redis的同学都知道,Redis目前版本是没有提供集群功能的,只能单打独斗.如果要实现多台Redis同时提供服务只能通过客户端自身去实现.目前根据文档已经看到Redis正在开发集群功能, ...
- Android四个多线程分析:MessageQueue实现
Android四个多线程分析:MessageQueue的实现 罗朝辉 (http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 在前面两篇文章<Android多线 ...
- 利用SVNKit进行版本库的树的导出
public List searchByTree(String userName,String passwd,String SVNServerUrl,String dirUrl){ //这里有点像 s ...
- Extjs4.0.7 实现Grid的嵌套
网上相关资料非常少,我看过的大多是Extjs 3.0 急以前版本的解决方案. 比如:http://mikhailstadnik.com/ext/examples/nested-grid.htm (E ...
- hdu 3790 (最短路径问题dijkstra)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起 ...
- 计算机本科/硕士找offer的总结 节选
在这样的目标定位下,我的求职历程从2006年10月8日开始,到2007年1月10日正式结束,一共持续了3个月的时间.整个过程可以分为三个阶段:第一阶段:2006年10月份 找工作刚刚开始的阶段,什么都 ...
- linux查看某个进程CPU消耗较高的具体线程或程序的方法
目前我们的监控,可以发现消耗较高CPU的进程(阀值为3个CPU),通过监控我们可以找到消耗较高CPU的进程号: 通过进程号pid,我们在linux上可以通过top –H –p <pid> ...
- HDU1071 The area 【积分】
The area Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...