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
轉載于:https://www.cnblogs.com/hrhguanli/p/4075508.html
總結
以上是生活随笔為你收集整理的Chapter 1 Securing Your Server and Network(2):管理服务的SIDs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wow64
- 下一篇: hdu3333(线段树)