最近碰到一個有趣的錯誤:海外的一臺數據庫服務器上某些作業偶爾會報錯,報錯信息如下所示: ------------------------------------------------------------------------------------------------------------------------------------------------- 日期 2
最近碰到一個有趣的錯誤:海外的一臺數據庫服務器上某些作業偶爾會報錯,報錯信息如下所示:
-------------------------------------------------------------------------------------------------------------------------------------------------
日期 2013/9/15 12:00:00
日志 作業歷史記錄 (JOB_SYNCHRONIZING_ESCM_DATA_EAV)
步驟 ID 0
服務器 EGVNT02
作業名稱 JOB_SYNCHRONIZING_ESCM_DATA_EAV
步驟名稱 (Job outcome)
持續時間 00:04:34
SQL 嚴重性 0
SQL 消息 ID 0
已通過電子郵件通知的操作員
已通過網絡發送通知的操作員
已通過尋呼通知的操作員
重試次數 0
消息
The job failed. Unable to determine if the owner (domain\login) of job JOB_SYNCHRONIZING_ESCM_DATA_EAV has server access (reason: Could not obtain information about Windows NT group/user 'domain\login', error code 0x5. [SQLSTATE 42000] (Error 15404)).
-------------------------------------------------------------------------------------------------------------------------------------------------
該數據庫版本為Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) ,使用domain\login創建的作業,,該domain\login擁有sysadmin服務器角色,但是該服務器所屬的是domain A, 而且不屬于該系統下的Administator組成員。關于該數據庫相關服務的登錄賬號如下所示:
從網上搜索到資料如下所示:
This message is thrown if the SQL Server service uses an account that does not have sufficient administrative credentials on the Windows domain. In this situation, the xp_logininfo system stored procedure is run by using the security context of the SQL Server service. Because the account does not have sufficient administrative credentials to enumerate the properties of the user in the domain, the xp_logininfo system stored procedure fails, and you receive the 8198 error. To resolve this problem, change the startup account of the SQL Server service to a Windows domain account.
We need to either run the SQL service under domain account or use SQL authentication
翻譯如下(僅供參考)如果SQL Server服務使用的帳戶沒有足夠管理憑據,將會拋出此錯誤消息。對Windows域。在這種情況下,xp_logininfo系統存儲過程使用SQL Server服務的安全上下文中運行。因為帳戶沒有足夠的安全憑據,枚舉用戶在域的屬性,xp_logininfo系統存儲過程失敗,您會收到8198錯誤。為了解決這個問題,更改SQL Server服務的啟動帳戶到Windows域帳戶。
我們需要用域帳戶或使用SQL身份驗證運行SQL服務。
其實要解決這個問題也很方便,只需將作業的owner改為sa或本地域下擁有sysadmin角色的賬號即可解決問題。但是對問題的本質還是迷糊,為什么大部分時候就能成功執行,偶爾就會出現這個錯誤呢?這點一直沒讓我弄明白。
參考資料:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com