基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误


一数据库服务器(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