基于令牌的服务器访问验证失败,金沙官网线上

一数据库服务器(SQL Server 2014)上的一个作业执行报错,具体错误信息如下:

YourSQLDba可以将数据库备份到网络路径(共享路径),这个也是非常灵活的一个功能,以前一直没有使用过这个功能,最近由于一个需求,于是我测试了一下YourSQLDba备份到网络路径,中间遇到了一些问题,遂整理如下。

 

测试环境:

Executed as user: NT SERVICESQLSERVERAGENT. 用户 'xxxxxxxxx$' 登录失败。 [SQLSTATE 28000] (Error 18456). The step failed.

    操作系统:  Windows Server Standard 2012

 

  数据库版本:  SQL SERVER 2014

金沙官网线上 1

 

 

1:设置共享路径权限

其中用户 'xxxxxxxxx$',反斜杠前面是域名,后面为计算机名称+$, 其实这是一个虚拟账号。 即本地系统帐户不具有网络的任何访问权限。当需要访问网络时,本地系统使用帐户 Domaincomputername$ 。具体参考关于 Configuration Manager 中的本地系统帐户/Computer$

  

 

     这一步很简单,也非常好理解。共享路径需要给某些特定用户才能访问,例如某个域账号。在此略过。

起初看到这个错误,有点不知所以然,并不清楚是什么具体原因造成,那么就去检查作业执行的存储过程,发现里面使用链接服务器(LINKED SERVER),由于这个错误提示是本地系统账号访问网络的权限问题,所以我特意去链接服务器(LINKED SERVER)所指向的数据库服务器,结果在同一时间点也出现了一个错误信息,其实就是该作业链接过来时产生的信息。

 

Message

2:映射网络驱动器。

Login failed for user 'xxxxxxx$'. 原因: 基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误。 [客户端: 192.168.xxx.xxx]

映射网络驱动器,顾名思义,就是将局域网内的一个共享文件夹作为一个虚拟的网络硬盘,然后将该网络硬盘映射到本地计算机,然后我们就可以在本地计算机上访问该共享文件夹. YourSQLDba不能直接访问共享路径。否则会报错。

 

金沙官网线上 2

金沙官网线上 3

金沙官网线上 4

 

 

检查该链接服务器(LINKED SERVER)发现该链接服务器使用的是“使用登录名的当前安全上下文建立连接”(Be made using the login's current security context)

3:然后使用Exec YourSQLDba.Maint.CreateNetworkDriv设置网络路径。

 

sp_configure 'show advanced option', 1;

go

reconfigure;

go

sp_configure 'xp_cmdshell', 1;

go

reconfigure;

go

 

 

Exec YourSQLDba.Maint.CreateNetworkDrives

 @DriveLetter = 'S:'  

 @unc = '\192.168.xxx.xxxYourSQLDBABAKServer1' 

金沙官网线上 5

设置网络路径,必须开启数据库“xp_cmdshell”选项,否则就会有如下错误。

 

金沙官网线上, 

由于是作业调用该存储过程,那么该作业执行到调用链接服务器部分SQL时,使用的就是启动SQL Agent服务的登录名来建立安全上下文, 如下所示,SQL Agent服务的启动账号为NT ServiceSQLSERVERAGENT, 而链接服务器(LINKED SERVER)所指的数据库服务器,启动SQL Agent服务的登录名为一个域账号,很显然此时链接服务器就会遇到权限问题。其实就是最近修改了这台服务器的SQL Agent服务的登录名所导致。SQL Agent服务本来是一个域账号启动的。

Exec YourSQLDba.Maint.CreateNetworkDrives

 

  @DriveLetter = 'S:' 

金沙官网线上 6

, @unc = '\192.168.xxx.xxxYourSQLDBABAKServer1'

 

 

本文由金沙官网线上发布于数据库,转载请注明出处:基于令牌的服务器访问验证失败,金沙官网线上

您可能还会对下面的文章感兴趣: