基於令牌的服務器訪問驗證失敗,出現基礎結構錯誤。請檢查以前的錯誤


一數據庫服務器(SQL Server 2014)上的一個作業執行報錯,具體錯誤信息如下:

 

Executed as user: NT SERVICE\SQLSERVERAGENT. 用戶 'xxxx\xxxxx$' 登錄失敗。 [SQLSTATE 28000] (Error 18456). The step failed.

 

clipboard

 

其中用戶 'xxxx\xxxxx$',反斜杠前面是域名,后面為計算機名稱+$, 其實這是一個虛擬賬號。 即本地系統帳戶不具有網絡的任何訪問權限。當需要訪問網絡時,本地系統使用帳戶 Domain\computername$ 。具體參考關於 Configuration Manager 中的本地系統帳戶/Computer$

 

起初看到這個錯誤,有點不知所以然,並不清楚是什么具體原因造成,那么就去檢查作業執行的存儲過程,發現里面使用鏈接服務器(LINKED SERVER),由於這個錯誤提示是本地系統賬號訪問網絡的權限問題,所以我特意去鏈接服務器(LINKED SERVER)所指向的數據庫服務器,結果在同一時間點也出現了一個錯誤信息,其實就是該作業鏈接過來時產生的信息。

Message

Login failed for user 'xxx\xxxx$'. 原因: 基於令牌的服務器訪問驗證失敗,出現基礎結構錯誤。請檢查以前的錯誤。 [客戶端: 192.168.xxx.xxx]

 

clipboard[1]

 

檢查該鏈接服務器(LINKED SERVER)發現該鏈接服務器使用的是“使用登錄名的當前安全上下文建立連接”(Be made using the login's current security context)

 

image

 

由於是作業調用該存儲過程,那么該作業執行到調用鏈接服務器部分SQL時,使用的就是啟動SQL Agent服務的登錄名來建立安全上下文, 如下所示,SQL Agent服務的啟動賬號為NT Service\SQLSERVERAGENT, 而鏈接服務器(LINKED SERVER)所指的數據庫服務器,啟動SQL Agent服務的登錄名為一個域賬號,很顯然此時鏈接服務器就會遇到權限問題。其實就是最近修改了這台服務器的SQL Agent服務的登錄名所導致。SQL Agent服務本來是一個域賬號啟動的。

 

image

 

知道具體原因了,那么就能給出具體解決方案了:

 

方法1: 修改啟動SQL Server Agent服務的登錄名,例如具有系統管理員權限的域賬號(當然所指向的服務器也具有該域賬號,並且有相關權限),然后重啟SQL Agent服務就能解決問題。

方法2: 修改鏈接服務器(LINKED SERVER),使用特定賬號來建立安全上下文機制也可以解決這個問題。


免責聲明!

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



猜您在找 出現“在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。”這樣的錯誤! 動軟代碼生成器報“添加服務器配置失敗,請檢查是否有寫入權限或文件是否存在“錯誤 Visual Studio出現“ 激活遠程語言服務器 c#/Visual Basic 語言服務器客戶端出錯”請運行devenv/log並檢查…………“錯誤解決辦法 XShell連接阿里雲服務器出現”用戶密鑰加載失敗:請確定輸入的密碼“處理辦法 在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL 登錄瑞友天翼時提示“建立SSl 加密隧道失敗,請檢查網絡連接是否正常或者服務器的協議端口是否正常”,如何處理? sqlserver 鏡像配置問題 (針對服務器網絡地址 "TCP://XXXXX:5022" 無法訪問或不存在。 請檢查網絡地址名稱,並檢查本地和遠程端點的端口是否正常運行) arch linux安裝mongodb出現gpg: 從公鑰服務器接收失敗:一般錯誤的解決辦法 問題:sql的還原問題-無法訪問服務器上的指定路徑或文件。請驗證您具有必需的安全特權且該路徑或文件存在 pyodbc.OperationalError: ('08001', '[08001] 無法打開與 SQL Server 的連接[08001]登錄超時已過期 (0); 與 SQL Server 建立連接時發生了與網絡相關的或特定於實例的錯誤。找不到或無法訪問服務器。請檢查實例名稱是否正確以及 SQL Server 是否配置為允許遠程連接。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM