帶您深入了解SQL Server服務(wù)帳戶模式
安裝SQL Server需要選擇服務(wù)的登錄帳戶類型,那么為什么需要用戶選擇服務(wù)帳戶類型呢,不同的服務(wù)帳戶類型又有什么差別呢?下文將帶您尋找答案。
一:為什么需要SQL Server服務(wù)帳戶類型
SQL Server在操作系統(tǒng)中是作為進(jìn)程來運(yùn)行的,SQL Server中的每個服務(wù)代表一個進(jìn)程或一組進(jìn)程。每個進(jìn)程需要有訪問SQL Server相關(guān)文件(如.mdf、.ndf 和 .ldf 等文件)或注冊表或者SQL Server安裝目錄的權(quán)限。這與當(dāng)前登錄到SQL Server服務(wù)器上的用戶權(quán)限無關(guān)。無論是管理員帳號Sa,還是普通SQL Server用戶,這些SQL Server用戶的權(quán)限大小與操作系統(tǒng)中SQL Server進(jìn)程權(quán)限無關(guān)。為了能讓SQL Server在操作系統(tǒng)中正常的啟動和運(yùn)行,就需要指定SQL Server的服務(wù)帳戶,用以登錄Windows操作系統(tǒng)并獲取需要訪問文件的權(quán)限。所以服務(wù)帳戶指的是Windows操作系統(tǒng)中的帳戶。
二:不同的SQL Server服務(wù)帳戶類型的含義。
理解了為什么需要指定服務(wù)帳戶,那么我們再來看一下在SQL Server 2000以及SQL Server 2005中,不同服務(wù)帳戶的作用。只有理解了不同服務(wù)帳戶的作用,我們才知道在實(shí)際環(huán)境中該如何選擇最適合的服務(wù)帳戶。
1:SQL Server 2000服務(wù)帳戶類型
SQL Server 2000中SQL Server服務(wù)帳戶只有兩種,如圖一所示,分別是“本地系統(tǒng)帳戶”和“域用戶帳戶”。兩者之間的區(qū)別在SQL Server 2000聯(lián)機(jī)幫助中說得很清楚:
本地系統(tǒng)帳戶不要求密碼,沒有 Windows NT 4.0 和 Windows 2000 的網(wǎng)絡(luò)訪問權(quán)限,同時限制 SQL Server 安裝與其它服務(wù)器交互。
域用戶帳戶使用 Windows 身份驗(yàn)證,即用于連接到操作系統(tǒng)的用戶名和密碼也用于連接到 SQL Server。一般情況下都使用域用戶帳戶,因?yàn)樵S多服務(wù)器之間的活動只能使用域用戶帳戶才能執(zhí)行,例如:遠(yuǎn)程過程調(diào)用,復(fù)制,備份到網(wǎng)絡(luò)驅(qū)動器以及SQL郵件相關(guān)功能。
也就是涉及到網(wǎng)絡(luò)相關(guān)的操作,“本地系統(tǒng)帳戶”就無法為力。我們從服務(wù)帳戶的作用上來思考就比較容易理解原因所在。如上面為什么需要服務(wù)帳戶上所說的一樣,服務(wù)帳戶指的是Windows操作系統(tǒng)中的帳戶。我們知道,在Windows網(wǎng)絡(luò)中兩臺計(jì)算機(jī)要通訊,被訪問方需要訪問方提供身份驗(yàn)證信息,因?yàn)楸镜叵到y(tǒng)帳戶不屬于Windows帳號中的 Everyone 組,因此,使用該帳戶的服務(wù)只能通過空會話來訪問網(wǎng)絡(luò)資源。一般情況下,空會話會在最基本的安全設(shè)置中被禁用,這就是“本地系統(tǒng)帳戶”無法使用使用網(wǎng)絡(luò)功能的原因所在。“域用戶帳戶”就是通過帳號信息進(jìn)行安全身份驗(yàn)證,只要提供的安全身份信息驗(yàn)證通過,網(wǎng)絡(luò)訪問就被允許。這里“域用戶帳號”名字并不貼切,其實(shí)并不一定要求是AD域用戶帳戶,基于工作組模型的用戶帳戶一樣可以適應(yīng)于“域用戶帳號”。
2:SQL Server 2005服務(wù)帳戶類型
SQL Server 2005中SQL Server服務(wù)帳戶類型分為“內(nèi)置系統(tǒng)帳戶”和“域用戶帳戶”,但“內(nèi)置系統(tǒng)帳戶”細(xì)分成三類“本地系統(tǒng)帳戶”、“網(wǎng)絡(luò)服務(wù)帳戶”以及“本地服務(wù)帳戶”。
在SQL Server 2005聯(lián)機(jī)幫助中不同的服務(wù)帳戶類型說明如下:
“本地系統(tǒng)”選項(xiàng)指定一個不需要密碼的本地管理員級別的系統(tǒng)帳戶,與SQL Server 2000中的本地系統(tǒng)帳戶類似。
“網(wǎng)絡(luò)服務(wù)帳戶”是一個特殊的內(nèi)置帳戶,它與通過身份驗(yàn)證的用戶帳戶類似。網(wǎng)絡(luò)服務(wù)帳戶與 Users 組的成員具有相同級別的資源和對象訪問權(quán)限。以網(wǎng)絡(luò)服務(wù)帳戶身份運(yùn)行的服務(wù)將使用計(jì)算機(jī)帳戶的憑據(jù)訪問網(wǎng)絡(luò)資源。
“本地服務(wù)帳戶”是一個特殊的內(nèi)置帳戶,它與通過身份驗(yàn)證的用戶帳戶類似。本地服務(wù)帳戶與 Users 組的成員具有相同級別的資源和對象訪問權(quán)限。如果有個別服務(wù)或進(jìn)程的安全受到威脅,則此有限訪問權(quán)限有助于保護(hù)系統(tǒng)的安全。以本地服務(wù)帳戶身份運(yùn)行的服務(wù)將以一個沒有憑據(jù)的空會話形式訪問網(wǎng)絡(luò)資源。
“域用戶帳戶”是一個使用 Windows 身份驗(yàn)證的域用戶帳戶,以設(shè)置并連接到 SQL Server。Microsoft 建議對 SQL Server 服務(wù)使用具有***權(quán)限的域用戶帳戶,因?yàn)?SQL Server 服務(wù)不需要管理員帳戶特權(quán)。
建議在實(shí)際環(huán)境中,如果存在多臺SQL Server服務(wù)器互相通信,請使用“域用戶帳戶”。如果個人測試環(huán)境,服務(wù)帳戶類型按個人喜好。
【編輯推薦】
SQL Server查詢表結(jié)構(gòu)的實(shí)現(xiàn)