none
MSSQLServer以及SQLServerAgent服務啟動權限問題 RRS feed

  • 問題

  • 大家好,請問這兩個服務的啟動帳號權限一定得是本機administrators群組才可以嗎?因為公司最近要開始進行帳號分權制度,不想讓管理資料庫的人員對本機有太高的權限,不過我試了一下,啟動帳號好像一定得加到本機administrators群組才可以順利啟動服務,所以想請教大家一下,我們的主機是Windows2000+SQL2000,謝謝。
    2011年7月21日 下午 02:53

所有回覆

  • Service account of sql engine doesn't require local admin rights, but I do see problem to start sql agent service without local admin rights. By the way, you need local admin rights to start/stop service in windows.


    2011年7月21日 下午 04:50
  • 服務啟動帳戶應該權限夠用就好,除非有必要否則應避免直接賦予Administrators權限,有關SQL Sever各項服務啟動帳戶,可參考下列連結:

    SQL Server 2000 資源安全性指南

    以下節錄自SQL Server 2000 資源安全性指南:

     

    SQL Server 2000 和 SQL Server 代理程式是以 Windows 服務的型態執行。每項服務都必須與一個 Windows 帳戶相關聯,從而衍生其安全性條件。SQL Server 允許以 sa 登入的使用者,並在某些狀況下允許其他使用者,可以存取作業系統功能。這些作業系統呼叫是使用擁有伺服器處理序之帳戶的安全性條件而執行,如果伺服器已遭破解,這些作業系統呼叫可能會遭到利用,而將攻擊擴散到處理序 (SQL Server 服務帳戶) 可以存取的任何其他資源。基於這個原因,請務必只將必要的權限授予給 SQL Server 服務。
    
    建議您採用下列的設定:
    
    SQL Server 引擎/MSSQLServer 
    如果有具名執行個體 (Named Instance) 存在,將命名為 MSSQL$InstanceName。請以具有一般使用者權限的 Windows 網域使用者帳戶來執行,請勿以本機系統、本機系統管理員或網域系統管理員帳戶執行。
    SQL Server 代理程式服務/SQLServerAgent
    如果環境中不需要這項服務,請加以停用;否則,請以具有一般使用者權限的 Windows 網域使用者帳戶來執行,請勿以本機系統、本機系統管理員或網域系統管理員帳戶執行。
    
    重要 如果下列其中一項敘述為真,SQL Server 代理程式將需要本機 Windows 系統管理員權限:
    SQL Server 代理程式使用標準 SQL Server 驗證連線至 SQL Server (不建議)。
    SQL Server 代理程式使用多重伺服器系統管理主伺服器 (MSX,Multiserver Administration Master Server) 帳戶,而該帳戶是使用 SQL Server 驗證連線。
    SQL Server 代理程式執行的 Microsoft ActiveX® 指令碼或 CmdExec 工作,是由不屬於 sysadmin 固定伺服器角色成員的使用者擁有。
    如果需要變更與 SQL Server 服務相關聯的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將對 SQL Server 所使用的檔案和登錄機碼設定適當的權限。絕對不要使用 (控制台中) Microsoft Management Console 的 [服務] Applet 變更這些帳戶,因為這種方式必須手動調整許多登錄,以及 NTFS 檔案系統權限和 Microsoft Windows 使用者權限。
    
    如需詳細資訊,請參閱 Microsoft 知識庫文件 <Change the SQL Server Service Account Without Using SQL Enterprise Manager in SQL Server 2000> (不使用 SQL Server 2000 的 SQL Enterprise Manager 變更 SQL Server 服務帳戶)。
    
    帳戶資訊的變更將在下次啟動服務時生效。如果需要變更與 SQL Server 和 SQL Server 代理程式相關聯的帳戶,您必須使用 Enterprise Manager 將變更分別套用至這兩項服務。


     


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年7月21日 下午 10:50
    版主
  • 服務啟動帳戶應該權限夠用就好,除非有必要否則應避免直接賦予Administrators權限,有關SQL Sever各項服務啟動帳戶,可參考下列連結:

    SQL Server 2000 資源安全性指南

    以下節錄自SQL Server 2000 資源安全性指南:

     

    SQL Server 2000 和 SQL Server 代理程式是以 Windows 服務的型態執行。每項服務都必須與一個 Windows 帳戶相關聯,從而衍生其安全性條件。SQL Server 允許以 sa 登入的使用者,並在某些狀況下允許其他使用者,可以存取作業系統功能。這些作業系統呼叫是使用擁有伺服器處理序之帳戶的安全性條件而執行,如果伺服器已遭破解,這些作業系統呼叫可能會遭到利用,而將攻擊擴散到處理序 (SQL Server 服務帳戶) 可以存取的任何其他資源。基於這個原因,請務必只將必要的權限授予給 SQL Server 服務。
    
    建議您採用下列的設定:
    
    SQL Server 引擎/MSSQLServer 
    如果有具名執行個體 (Named Instance) 存在,將命名為 MSSQL$InstanceName。請以具有一般使用者權限的 Windows 網域使用者帳戶來執行,請勿以本機系統、本機系統管理員或網域系統管理員帳戶執行。
    SQL Server 代理程式服務/SQLServerAgent
    如果環境中不需要這項服務,請加以停用;否則,請以具有一般使用者權限的 Windows 網域使用者帳戶來執行,請勿以本機系統、本機系統管理員或網域系統管理員帳戶執行。
    
    重要 如果下列其中一項敘述為真,SQL Server 代理程式將需要本機 Windows 系統管理員權限:
    SQL Server 代理程式使用標準 SQL Server 驗證連線至 SQL Server (不建議)。
    SQL Server 代理程式使用多重伺服器系統管理主伺服器 (MSX,Multiserver Administration Master Server) 帳戶,而該帳戶是使用 SQL Server 驗證連線。
    SQL Server 代理程式執行的 Microsoft ActiveX® 指令碼或 CmdExec 工作,是由不屬於 sysadmin 固定伺服器角色成員的使用者擁有。
    如果需要變更與 SQL Server 服務相關聯的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將對 SQL Server 所使用的檔案和登錄機碼設定適當的權限。絕對不要使用 (控制台中) Microsoft Management Console 的 [服務] Applet 變更這些帳戶,因為這種方式必須手動調整許多登錄,以及 NTFS 檔案系統權限和 Microsoft Windows 使用者權限。
    
    如需詳細資訊,請參閱 Microsoft 知識庫文件 <Change the SQL Server Service Account Without Using SQL Enterprise Manager in SQL Server 2000> (不使用 SQL Server 2000 的 SQL Enterprise Manager 變更 SQL Server 服務帳戶)。
    
    帳戶資訊的變更將在下次啟動服務時生效。如果需要變更與 SQL Server 和 SQL Server 代理程式相關聯的帳戶,您必須使用 Enterprise Manager 將變更分別套用至這兩項服務。


     


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    你好,我在我們另外一台Windows2003+SQL2008的主機上測試,SQLServerAgent的啟動帳號只需要Users權限就可以了,但是在SQL2000上就是需要administrators權限才可以,所以應該是有符合文章說的例外,但因為自己本身對SQL不是很熟,所以也不懂到底是符合哪一項例外條件,請問您這邊是否可以解惑呢?謝謝。
    2011年7月22日 上午 01:48
  • 重要 如果下列其中一項敘述為真,SQL Server 代理程式將需要本機 Windows 系統管理員權限:
    1. SQL Server 代理程式使用標準 SQL Server 驗證連線至 SQL Server (不建議)。
    2. SQL Server 代理程式使用多重伺服器系統管理主伺服器 (MSX,Multiserver Administration Master Server) 帳戶,而該帳戶是使用 SQL Server 驗證連線。
    3. SQL Server 代理程式執行的 Microsoft ActiveX® 指令碼或 CmdExec 工作,是由不屬於 sysadmin 固定伺服器角色成員的使用者擁有。

    The article listed 3 exceptions as above. You may use sql authentication to connect to sql engine, double check sql agent properties.

    2011年7月22日 上午 02:33