使用本地系統帳戶和域用戶帳戶兩者區別(microsoft SQLServer2000)(ZT)


    本文轉載於:使用本地系統帳戶和域用戶帳戶兩者區別(microsoft SQLServer2000)

    在安裝SQLSERVER2000時,會有這樣的一個選擇畫面,這是設置啟動sqlserver服務的登錄身份。SQLSERVER2000裝好后,會產生一個MSSQLSERVER服務,在這里設置的就是啟動它這個服務的登錄身份。  
        那么我們究竟要選擇哪一個呢?兩者各代表什么意思呢?下文我們就來研究一下。

        我們先看熟悉一下兩個相關概念。

什么是憑據?
        Windows憑據(Credential)其實就是指用戶帳戶和口令,我們調用一些API,如WTSOpenServer,QueryServiceStatus,netUserEnum等等涉及到RPC的,只要當前用戶存儲有目標遠程機的權限合適的憑據,則這些API就不會因產生ERROR_ACCESS_DENIED而執行失敗。
        不好理解么?那么我們來看一下訪問別的計算機的情形,加深理解。訪問遠程計算機必然用到rpc。
 
        上圖就是我們連接到IP為172.16.100.1計算時的情形,這個時候是需要我們輸入用戶帳戶與密碼的。這里的用戶帳戶與密碼就是所謂的憑據。
 
        當我們輸入用戶帳戶與密碼后,並把“記住我的密碼”打上勾,點確定。那么我們的憑據(即這個用戶帳戶與密碼)被存儲了,以后再訪問的時候就無須再輸入。

安全上下文
        安全上下文(Security context)是指在一個系統中有效的安全屬性或規則。

       下面我們來看SQLSERVER2000服務的兩種登錄方式:本地系統帳戶和域用戶帳戶

本地系統帳戶:

        該帳戶是對本地計算機具有管理員權限的預定義本地帳戶。在本地系統帳戶的安全上下文中運行的服務向遠程服務器提供本地計算機的憑據。在本地系統帳戶的安全上下文中運行的服務不能建立身份驗證會話,因為本地系統帳戶不屬於域中的 Everyone 組。因此,使用該帳戶的服務只能通過空會話(沒有憑據)來訪問網絡資源。(這個訪問指的是為了完成某項任務服務的自動訪問,和我們的連接SQL服務器不一概念)

域用戶帳戶:

使用專用域用戶帳戶作為登錄帳戶

        域用戶帳戶是指在 Active Directory 目錄服務中創建的用戶帳戶。該帳戶是域中 Authenticated Users 組的成員。在域用戶帳戶的安全上下文中運行的服務向遠程服務器提供域用戶帳戶的 Kerberos 票證。在域用戶帳戶的安全上下文中運行的服務可以訪問經過身份驗證的用戶或特定用戶帳戶有權訪問的遠程服務器上的資源。

使用本地用戶帳戶作為登錄帳戶

        本地用戶帳戶是指在本地計算機上創建的Windows用戶帳戶。在本地用戶帳戶的安全上下文中運行的服務向遠程服務器提供本地用戶帳戶的訪問標記。如果在遠程服務器上配置了匹配用戶名和密碼,則使用本地用戶帳戶的服務將能夠訪問同名帳戶有權訪問的遠程服務器上的資源。雖然此方案行之有效,但是維護這些單獨的帳戶並保持帳戶密碼同步將增加管理開銷。
         如果你沒有加入域,但又需要連接到網絡資源,那么可以使用本地用戶帳戶作為登錄帳戶。
         由此可見使用域用戶帳戶可以使用憑據來訪問遠程計算機,並使用相應的資源。

        例如SQLSERVER服務,當它進行以下操作時,是需要訪問遠程計算機的。
        • 遠程過程調用。
        • 復制。
        • 備份到網絡驅動器。
        • 涉及遠程數據源的異類聯接。
        • SQL Server 代理郵件功能和 SQL 郵件。

         在這幾種情況下是無法不使用憑證去訪問遠程計算機,並使用其資源的。所以必須得把登錄類型改為“域用戶帳戶”,並輸入在遠程計算機上配置好的,存在的“用戶名”和“密碼”。

如果只是裝在本機進行開發或學習,完全沒必要使用域用戶帳戶登錄模式,因為有時候因為切換不同用戶而導致服務不能啟動。

修改SQLSERVER服務的登錄類型

        服務的登錄類型是隨時可以改變的。可以需要的時候通過以下兩種方法修改SQLSERVER服務的登錄類型。

1. 通過企業管理器修改

   右擊SQLSERVER服務器---“屬性”---“安全性”下的“啟動服務帳戶”
 

2.通過服務修改

 “控制面板”---“服務”----“MSSQLSERVER”,右擊---“屬性”---“登錄”
 

 裝SQLSERVER時遇到的一些問題
1.在安裝時出現提示"command line option syntax error!type command /? for help"
    這是因為你可能把SQLSERVER的安裝文件放在了中文目錄下,可以你它改為英文目錄即可。每一級目錄都不能含有中文。
2.出現提示"以前的某個程序安裝已在安裝計算機上創建掛起的文件操作。運行安裝程序之前必須重啟計算機"
  打開注冊表編輯器(或在命令行輸入:regedit),在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations項目,並刪除它。然后進行安裝。

 

 PS:

Local System/Network Service/Local Service權限介紹

1.Local   System (本地系統):
該賬戶具有相當高的權限。
首先,該賬戶也隸屬於本地Administrators   用戶組,因此所有本地Administrators用戶能夠進行的操作該賬戶也能夠進行,
其次,該賬戶還能夠控制文件的權限(NTFS   文件系統)和注冊表權限,甚至占據所有者權限來取得訪問資格。
如果機器處於域中,那么運行於Local   System   賬戶下的服務還可以使用機器賬戶在同一個森林中得到其他機器的自動認證,
最后一點就是運行於Local   System   下的進程能夠使用空會話(null   session)去訪問網絡資源。
而且,其他一些Windows 用戶模式下的核心組件也運行於該賬戶下,例如system32\Smss.exe 等。
需要注意的是,運行於此賬戶下的進程使用的是HKEY_USERS\.Default 賬戶配置,因此它不能夠訪問其他賬戶的配置。

舉例來說,以LocalSystem賬戶運行的服務主要有:WindowsUpdate   Client、   Clipbook、Com+、DHCP   Client、Messenger  

Service、Task   Scheduler、Server   Service、Workstation   Service,還有Windows   Installer。

2.Network   Service(網路服務):
該賬戶也是為了使用機器賬戶在網絡上的其他計算機上認證而設定的。但是他沒有Local   System   那么多的權限。
它能夠以計算機的名義訪問網絡資源。以這個賬戶運行的服務會根據實際環境把訪問憑據提交給遠程的計算機。
運行於此賬戶下的進程使用網絡賬戶配置文件HKEY_USERS\S-1-5-20和Documents and Settings\NetworkService。
舉例來說,以Network   Service賬戶運行的服務主要有:Distributed   Transaction   Coordinator、DNS   Client、

Performance   Logs   and   Alerts,還有RPC   Locator。

 

3.Local   Service(本地服務):
Local   Service賬戶是預設的擁有最小權限的本地賬戶,並在網絡憑證中具有匿名的身份。
運行於此賬戶下的進程和運行於Network   Service   賬戶下的進程的區別
在於運行於Local   Service   賬戶下的進程只能訪問允許匿名訪問的網絡資源。
運行於Local   Service   下的賬戶使用的配置文件是HKU\S-1-5-19   和Documents   and   Settings\LocalService。

舉例來說,以Local   Service賬戶運行的服務主要有:Alerter、Remote   Registry、Smart   Card、SSDP,還有WebClient。

 

 Local System/Network Service/Local Service權限列表 

 1、本地系統:

內置帳戶,該帳戶具有較高的訪問權限級別。如果工作進程標識作為“本地系統”帳戶運行,則該工作進程具有整個系統的完全訪問權限

 

2、網絡服務

內置帳戶,該帳戶的系統訪問權限比“本地系統”帳戶少,但仍能通過網絡與計算機帳戶的憑據進行交互。對於 IIS 6.0,建議以“網絡服務”帳戶的身份運行為應用程序池定義的工作進程標識。默認情況下,該工作進程標識以“網絡服務”帳戶的身份運行。

默認的用戶權限:

  • 替換進程級令牌 (SeAssignPrimaryTokenPrivilege)
  • 調整進程的內存配額 (SeIncreaseQuotaPrivilege)
  • 生成安全審核 (SeAuditPrivilege)
  • 忽略遍歷檢查 (SeChangeNotifyPrivilege)
  • 從網絡訪問此計算機 (SeNetworkLogonRight)
  • 作為批處理作業登錄 (SeBatchLogonRight)
  • 作為服務登錄 (SeInteractiveLogonRight)
  • 允許本地登錄 (SeInteractiveLogonRight)  
  •  

    3、本地服務

    內置帳戶,該帳戶的計算機訪問權限比“網絡服務”帳戶少,並且該帳戶的用戶權限僅限於本地計算機。如果工作進程不需要訪問所在服務器之外的地方,則可以使用“本地服務”帳戶。 默認用戶權限:

    • 替換進程級令牌 (SeAssignPrimaryTokenPrivilege)
    • 調整進程的內存配額 (SeIncreaseQuotaPrivilege)
    • 生成安全審核 (SeAuditPrivilege)
    • 忽略遍歷檢查 (SeChangeNotifyPrivilege)
    • 從網絡訪問此計算機 (SeNetworkLogonRight)
    • 作為批處理作業登錄 (SeBatchLogonRight)


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM