您目前已離線,請等候您的網際網路重新連線

如何在不使用 SQL Server 2000 中的 SQL Enterprise Manager 或 SQL Server 2005 中的 SQL Server Configuration Manager 的情況下,變更 SQL Server 或 SQL Server Agent 服務帳戶

結論
當您初次將 Microsoft SQL Server 安裝在 Microsoft Windows NT 帳戶下執行時,SQL Server 會為該 Windows NT 帳戶針對特定的檔案、資料夾和登錄機碼設定各種 Windows 使用者權限。如果您稍後使用 SQL Server Enterprise Manager (SEM) 或 SQL Server Configuration Manager (SSCM) 來變更 SQL Server (MSSQLServer 服務) 及 SQL Server Agent 服務的啟動帳戶,SEM 就會自動將所有必要的權限和 Windows 使用者權限指定給新的啟動帳戶,如此一來,您就不必再執行其他操作。我們建議您使用此方法來變更服務帳戶。

注意 您必須擁有遠端伺服器的系統管理員權限,才可以在 SQL Server Enterprise Manager 內使用這個功能。

但是,如果您使用 [控制台] 或 [系統管理工具] 中的 [服務] 增益集,來變更 MSSQLServer 服務或 SQL Server Agent 服務的啟動帳戶資訊,則您必須手動設定其他權限和使用者權限。

本文將告訴您,使用 [服務] 增益集變更啟動帳戶資訊時,所必須採取的步驟。

在您繼續之前,請造訪下列 Microsoft 網站,並檢視「Microsoft 知識庫」中的文件:
Microsoft 資訊安全佈告欄 MS02-038
http://www.microsoft.com/technet/security/bulletin/MS02-038.mspx

Microsoft 資訊安全佈告欄 MS02-034
http://www.microsoft.com/technet/security/bulletin/MS02-034.mspx
322853 FIX: SQL Server Grants Unnecessary Permissions or an Encryption Function Contains Unchecked Buffers
316333 SQL Server 2000 Service Pack 2 安全性更新
注意 如果您遵守 MS02-034 和 MS02-038,便可排除現有系統管理認證提高的弱點,並協助避免在未來發生這類弱點。

使用服務增益集,而不是使用 SQL Enterprise Manager 或 SQL Server Management Studio,來變更 SQL Server 或 SQL Server Agent 服務帳戶

如果您使用 [服務] 增益集變更 SQL Server 服務帳戶或 SQL Server Agent 服務帳戶,而不是使用 SEM 或 SSCM,則必須設定特定登錄、NTFS 檔案系統權限與 Microsoft Windows 使用者權限。在 SQL Server Desktop Engine (也稱為 MSDE 2000) 或 SQL Server 2005 Express Edition 安裝中特別如此,因為您沒有 SEM 或 SSCM 可用來執行權限變更。您必須特別注意三個特定區域:
  • 登錄機碼。
  • 磁碟上的 NTFS 檔案系統權限。
  • Windows 使用者權限。
下列段落會分別討論每個區域。

登錄機碼

為 MSSQLServer 服務和 SQLServerAgent 服務的啟動帳戶 (本機 Microsoft Windows NT 帳戶或網域 Windows NT 帳戶),將下列清單列出的機碼設定為 [完全控制]。在下列 Hive 下,此清單中的機碼是設定「存取控制清單」(ACL) 的所在機碼。針對叢集,請在叢集中的每個節點執行此步驟。

「完全控制」權限適用於下列機碼和所有子系機碼:
  • 針對具名執行個體:
    HKEY_LOCAL_MACHINE\Software\Clients\Mail

    HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\80

    HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\<Instancename>
  • 針對預設執行個體:
    HKEY_LOCAL_MACHINE\Software\Clients\Mail

    HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\80

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Cluster

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Providers

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Replication

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Setup

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\SQLServerAgent

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Tracking

如果您使用 SQL Server 2005

針對具名執行個體或預設執行個體,請將「完全控制」權限套用至下列機碼和所有子系機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<MSSQL.x>
注意 在此登錄子機碼中,<MSSQL.x> 是系統對應值的預留位置。您可以從下列登錄子機碼中,利用名為執行個體名稱的登錄項目值,來判斷系統的對應值。針對預設執行個體,該執行個體名稱是 MSSQLSERVER:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\

磁碟上的 NTFS 檔案系統權限

在這些 NTFS 資料夾中,為 MSSQLServer 服務和 SQLServerAgent 服務的啟動帳戶 (本機 Windows NT 帳戶或網域 Windows NT 帳戶) 設定 [完全控制]。針對叢集,您也必須修改每個電腦節點上的對應路徑。

下列是具名執行個體的範例:
D:\Program Files\Microsoft SQL Server\MSSQL$_instancename_\
下列是預設執行個體的範例:
D:\Program Files\Microsoft SQL Server\MSSQL\
子資料夾和檔案也必須具有相同權限。

如果您使用 SQL Server 2005

則對應資料夾如下:
Drive:\Program Files\Microsoft SQL Server\<MSSQL.1>\MSSQL

Windows 使用者權限

通常,作業系統的預設安裝會將正常執行 SQL Server 所需的所有使用者權限授予 [本機管理員群組]。因此,為了讓這些帳戶成為 SQL Server 服務中的啟動帳戶,新增到 [本機管理員群組] 的本機 Windows NT 帳戶或網域帳戶都會擁有所有必要的使用者權限。不過,我們不建議您以這麼高的使用者權限執行 SQL Server。

如果您不想讓 SQL Server 或 SQL Server Agent 啟動帳戶成為 [本機管理員群組] 的成員,則 MSSQLServer 服務和 SQLServerAgent 服務的啟動帳戶 (本機 Windows NT 帳戶或網域 Windows NT 帳戶) 必須擁有這些使用者權限:
  • 作為作業系統的一部分 = SeTcbPrivilege
  • 略過跨越檢查 = SeChangeNotify
  • 記憶體中的鎖定頁面 = SeLockMemory
  • 以批次工作登入 = SeBatchLogonRight
  • 以服務方式登入 = SeServiceLogonRight
  • 取代處理序層級 = SeAssignPrimaryTokenPrivilege
注意 為方便進行程式設計,Microsoft Windows NT 使用者權限名稱會位於使用者權限之完整名稱的旁邊。

其他步驟

注意 如果電腦上的預設 NTFS 檔案系統權限已經變更,請確定 SQL Server 啟動帳戶已經在根磁碟機上 (亦即 SQL Server 資料庫資料和記錄檔所在位置) 啟用 [清單資料夾] 權限。

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
239759PRB: Error 5177 May Be Raised When Creating Databases

如果 MSSQLServer 服務即將啟動的帳戶是下列兩個帳戶之一,您必須將 MSSQLServer 或 SQLServerAgent 服務 (或兩者) 的啟動帳戶新增到 SQL Server sysadmin 角色,且為 [Domain\NTaccount] 使用者提供 SQL Server 的登入權限。
  • 不是電腦的 [本機管理員群組] 的成員。
  • BUILTIN\Administrators SQL Server 登入已經遭到移除。
例如:
EXEC sp_grantlogin [Example\test]
然後,將該帳戶新增到 sysadmin 角色:
EXEC sp_addsrvrolemember @loginame = [Example\test]    , @rolename =  'sysadmin'

如果您將 SQL Server 和全文檢索搜尋或叢集一起使用,則使用 SEM 以外的程式變更 SQL Server 啟動帳戶時,可能會導致許多問題。

如果您遇到全文檢索搜尋或叢集相關的問題,請參閱本文的<參考>一節,以取得詳細資訊。

如果您在 SQL Server 2000 和 Microsoft Windows 2000 環境中使用 Kerberos「安全性支援提供者介面」(Security Support Provider Interface,SSPI) 驗證,則必須捨棄舊的服務主要名稱 (SPN),然後使用新的帳戶資訊建立新的服務主要名稱。如需有關如何使用 SETSPN 執行這項操作的詳細資訊,請參閱《SQL Server 2000 線上叢書》中的<安全性帳戶委派>(Security Account Delegation) 主題。
参考
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
317746PRB: SQL Server Full-Text Search Does Not Populate Catalogs
317232 Event ID 1107 and 1079 Messages Occur After You Change the Cluster Service Account Password
295051 FIX:Changing SQL Server Account to Non-Admin for Full-Text Search Makes Existing Catalogs Unusable
254321 INF:叢集 SQL Server 謹記與切忌事項以及基本警告
239885 How to change service accounts for a clustered SQL Server computer
219264 資訊:SQL Server 7.0 叢集安裝程式的安裝順序
198168 BUG: Problems Might Occur When You Change Account Information for SQL Server Cluster
如需詳細資訊,請造訪下列 Microsoft 網站:
HKLM HKey
內容

文章識別碼:283811 - 最後檢閱時間:05/18/2011 06:15:00 - 修訂: 10.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqldeveloper kbinfo kbsql2005cluster kbhowtomaster KB283811
意見反應