SQL Server error after update: The token supplied to the function is invalid

时间:2017-04-13 14:54:01

标签: sql-server

I was using my machine (and SSMS) and everything was working fine. I did a reboot whereupon Windows 10 applied the following updates:

Windows Malicious Software Removal Tool for Windows 8, 8.1, 10 and Windows Server 2012, 2012 R2, 2016 x64 Edition - April 2017 (KB890830)
Security Update for Adobe Flash Player for Windows 10 Version 1607 (for x64-based Systems) (KB4018483)
Security Update for Microsoft Silverlight (KB4017094)
Cumulative Update for Windows 10 Version 1607 for x64-based Systems (KB4015217)

Now when I try to login in SSMS I'm getting the following error:

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The token supplied to the function is invalid (Microsoft SQL Server)

The token supplied to the function is invalid

This looks like it is security related, but I don't know what to do to fix it. My machine uses Windows Server Essentials for backups (and the connector is green).

5 个答案:

答案 0 :(得分:7)

我遇到过与SQL Server相同的问题。我遵循了一些步骤,我的问题得到了解决。这些步骤是 -

  1. 单击“开始”,单击“运行”,在“打开”框中键入regedit,然后单击“确定”。
  2. 找到并单击注册表中的以下子项: HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \控制\ SecurityProviders \ SCHANNEL

  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD值”。

  4. 键入SendExtraRecord作为DWORD值的名称,然后按Enter键。
  5. 右键单击“SendExtraRecord”,然后单击“修改”。
  6. 在“数值数据”框中,键入2以禁用schannel中的拆分记录,然后单击“确定”。
  7. 退出注册表编辑器。

答案 1 :(得分:4)

在具有管理权限的命令行中执行并重新启动。

netsh winsock reset

答案 2 :(得分:2)

为了完整性,我只是想回答这个问题。我不确定以前的答案是否能为我解决问题,所以就去...

在尝试连接到我们的一个质量检查数据库时,使用SSMS v18.0时始终收到以下错误: The token supplied to the function is invalid

结果证明,我们的证书刚刚被更新,并且在使用新的签名算法(从RSA / SHA256到RSA / SHA512)进行更新时对我来说是未知的。最终的解决方案是修改注册表中的已启用算法列表(计算机\ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Cryptography \ Configuration \ Local \ SSL \ 00010003),然后重新启动计算机: enable RSA/SHA512 registry

答案 3 :(得分:0)

似乎其他人只需重新启动机器的IIS即可获得成功。

这就像这样简单:

  

单击“开始”,单击“运行类型IISReset”,然后单击“确定”。 SOURCE (Microsoft)

否则,SSCM中有一些设置可能需要确保正确设置,这可能是导致各种问题的罪魁祸首:

  
      
  1. 确保启用共享内存协议
  2.   
  3. 确保已启用命名管道协议
  4.   
  5. 确保启用TCP / IP,并且在命名管道之前   设置SOURCE (SO)
  6.   

(这些设置在您的SSCM中)。还有nice blog post关于将这些设置设置为不同错误的解决方案。

我希望这有助于激发一些想法!看起来这是一个相当普遍的问题,没有很多具体的解决方案建议。

如果这些都不起作用(我认为如果他们解决了这个问题我会建议他们进行尽职调查),你可能需要调查Windows Malicious Software Removal Tool修改的内容。

其他人在过去的类似更新后使用SSMS遇到了问题,他们似乎提供Internet Explorer作为罪犯。为了解决这个问题,他们取消注册并注册了ieproxy.dll

他们建议这样做:

  
      
  • 管理模式启动命令行。如果您有Win x64,请转到C:\Program Files\Internet Explorerc:\Program Files (x86)\Internet Explorer
  •   
  • 执行regsvr32 /u ieproxy.dll(如果未加载,可能会抛出错误)
  •   
  • 执行regsvr32 ieproxy.dll SOURCE (SO)
  •   

这似乎对他们来说是成功的,希望它有效!

答案 4 :(得分:0)

只需回答我的后代问题即可:

打开MMC并选择本地计算机的证书附件。打开服务器证书并禁用服务器和客户端身份验证目的。重新启动SQL Server。完成。